@zzzen/pyright-internal 1.2.0-dev.20230430 → 1.2.0-dev.20230514
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +4 -1
- package/dist/analyzer/backgroundAnalysisProgram.js +12 -0
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -0
- package/dist/analyzer/checker.js +89 -6
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +14 -15
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.d.ts +6 -0
- package/dist/analyzer/constructors.js +513 -0
- package/dist/analyzer/constructors.js.map +1 -0
- package/dist/analyzer/dataClasses.js +86 -2
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +1 -1
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/enums.js +62 -8
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.js +47 -29
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +2 -2
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +3 -6
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +16 -0
- package/dist/analyzer/operations.js +749 -0
- package/dist/analyzer/operations.js.map +1 -0
- package/dist/analyzer/parseTreeUtils.d.ts +4 -2
- package/dist/analyzer/parseTreeUtils.js +32 -1
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +16 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +11 -33
- package/dist/analyzer/program.js +73 -735
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.js +1 -1
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +5 -21
- package/dist/analyzer/service.js +26 -33
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +9 -41
- package/dist/analyzer/sourceFile.js +219 -238
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.d.ts +3 -9
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/symbol.d.ts +3 -1
- package/dist/analyzer/symbol.js +5 -0
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +460 -1425
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +42 -7
- package/dist/analyzer/typeEvaluatorTypes.js +33 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +2 -8
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +3 -3
- package/dist/analyzer/typePrinter.js +247 -100
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +14 -7
- package/dist/analyzer/typeUtils.js +204 -49
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.d.ts +6 -7
- package/dist/analyzer/typeVarContext.js +21 -32
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typedDicts.js +2 -2
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +7 -4
- package/dist/analyzer/types.js +20 -10
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +1 -1
- package/dist/backgroundAnalysisBase.js +16 -0
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +0 -1
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/extensibility.d.ts +28 -4
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/logTracker.d.ts +2 -0
- package/dist/common/logTracker.js +8 -1
- package/dist/common/logTracker.js.map +1 -1
- package/dist/common/lspUtils.d.ts +4 -1
- package/dist/common/lspUtils.js +38 -1
- package/dist/common/lspUtils.js.map +1 -1
- package/dist/common/pathUtils.d.ts +11 -11
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/pythonVersion.d.ts +2 -1
- package/dist/common/pythonVersion.js +1 -0
- package/dist/common/pythonVersion.js.map +1 -1
- package/dist/common/workspaceEditUtils.d.ts +8 -8
- package/dist/common/workspaceEditUtils.js +10 -10
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +3 -7
- package/dist/languageServerBase.js +41 -73
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +50 -51
- package/dist/languageService/autoImporter.js +125 -210
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.d.ts +1 -1
- package/dist/languageService/callHierarchyProvider.js +11 -37
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +39 -81
- package/dist/languageService/completionProvider.js +572 -801
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +1 -1
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +6 -7
- package/dist/languageService/documentSymbolCollector.js +47 -28
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.d.ts +13 -35
- package/dist/languageService/documentSymbolProvider.js +52 -264
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +5 -6
- package/dist/languageService/hoverProvider.js +40 -132
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +6 -11
- package/dist/languageService/referencesProvider.js +23 -17
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.d.ts +16 -0
- package/dist/languageService/renameProvider.js +139 -0
- package/dist/languageService/renameProvider.js.map +1 -0
- package/dist/languageService/symbolIndexer.d.ts +31 -0
- package/dist/languageService/symbolIndexer.js +105 -0
- package/dist/languageService/symbolIndexer.js.map +1 -0
- package/dist/languageService/tooltipUtils.d.ts +8 -1
- package/dist/languageService/tooltipUtils.js +102 -1
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.d.ts +17 -0
- package/dist/languageService/workspaceSymbolProvider.js +133 -0
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -0
- package/dist/localization/localize.d.ts +33 -15
- package/dist/localization/localize.js +13 -7
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +14 -7
- package/dist/parser/parser.js +3 -0
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +26 -4
- package/dist/pyright.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +15 -20
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/checker.test.js +14 -0
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/completions.test.js +11 -236
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/docStringConversion.test.js +36 -2
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/documentSymbolCollector.test.js +3 -3
- package/dist/tests/documentSymbolCollector.test.js.map +1 -1
- package/dist/tests/fourslash/completions.override2.fourslash.js +1 -16
- package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
- package/dist/tests/fourslash/fourslash.d.ts +4 -4
- package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js +1 -1
- package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +17 -11
- package/dist/tests/harness/fourslash/testState.js +39 -50
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/importResolver.test.js +81 -1
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +1 -1
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/testStateUtils.d.ts +2 -2
- package/dist/tests/testStateUtils.js +38 -8
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +13 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +5 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +9 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +25 -9
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +95 -6
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/package.json +4 -4
- package/dist/languageService/importAdder.d.ts +0 -40
- package/dist/languageService/importAdder.js +0 -388
- package/dist/languageService/importAdder.js.map +0 -1
- package/dist/languageService/indentationUtils.d.ts +0 -16
- package/dist/languageService/indentationUtils.js +0 -727
- package/dist/languageService/indentationUtils.js.map +0 -1
- package/dist/languageService/insertionPointUtils.d.ts +0 -9
- package/dist/languageService/insertionPointUtils.js +0 -132
- package/dist/languageService/insertionPointUtils.js.map +0 -1
- package/dist/languageService/renameModuleProvider.d.ts +0 -65
- package/dist/languageService/renameModuleProvider.js +0 -939
- package/dist/languageService/renameModuleProvider.js.map +0 -1
- package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +0 -1
- package/dist/tests/fourslash/completions.commitChars.fourslash.js +0 -81
- package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +0 -1
- package/dist/tests/importAdder.test.d.ts +0 -1
- package/dist/tests/importAdder.test.js +0 -1325
- package/dist/tests/importAdder.test.js.map +0 -1
- package/dist/tests/indentationUtils.ptvs.test.d.ts +0 -1
- package/dist/tests/indentationUtils.ptvs.test.js +0 -324
- package/dist/tests/indentationUtils.ptvs.test.js.map +0 -1
- package/dist/tests/indentationUtils.reindent.test.d.ts +0 -1
- package/dist/tests/indentationUtils.reindent.test.js +0 -372
- package/dist/tests/indentationUtils.reindent.test.js.map +0 -1
- package/dist/tests/indentationUtils.test.d.ts +0 -1
- package/dist/tests/indentationUtils.test.js +0 -502
- package/dist/tests/indentationUtils.test.js.map +0 -1
- package/dist/tests/insertionPointUtils.test.d.ts +0 -1
- package/dist/tests/insertionPointUtils.test.js +0 -154
- package/dist/tests/insertionPointUtils.test.js.map +0 -1
- package/dist/tests/moveSymbol.importAdder.test.d.ts +0 -1
- package/dist/tests/moveSymbol.importAdder.test.js +0 -298
- package/dist/tests/moveSymbol.importAdder.test.js.map +0 -1
- package/dist/tests/moveSymbol.insertion.test.d.ts +0 -1
- package/dist/tests/moveSymbol.insertion.test.js +0 -537
- package/dist/tests/moveSymbol.insertion.test.js.map +0 -1
- package/dist/tests/moveSymbol.misc.test.d.ts +0 -1
- package/dist/tests/moveSymbol.misc.test.js +0 -169
- package/dist/tests/moveSymbol.misc.test.js.map +0 -1
- package/dist/tests/moveSymbol.updateReference.test.d.ts +0 -1
- package/dist/tests/moveSymbol.updateReference.test.js +0 -1071
- package/dist/tests/moveSymbol.updateReference.test.js.map +0 -1
- package/dist/tests/renameModule.folder.test.d.ts +0 -1
- package/dist/tests/renameModule.folder.test.js +0 -229
- package/dist/tests/renameModule.folder.test.js.map +0 -1
- package/dist/tests/renameModule.fromImports.test.d.ts +0 -1
- package/dist/tests/renameModule.fromImports.test.js +0 -790
- package/dist/tests/renameModule.fromImports.test.js.map +0 -1
- package/dist/tests/renameModule.imports.test.d.ts +0 -1
- package/dist/tests/renameModule.imports.test.js +0 -380
- package/dist/tests/renameModule.imports.test.js.map +0 -1
- package/dist/tests/renameModule.misc.test.d.ts +0 -1
- package/dist/tests/renameModule.misc.test.js +0 -615
- package/dist/tests/renameModule.misc.test.js.map +0 -1
- package/dist/tests/renameModule.relativePath.test.d.ts +0 -1
- package/dist/tests/renameModule.relativePath.test.js +0 -231
- package/dist/tests/renameModule.relativePath.test.js.map +0 -1
- package/dist/tests/renameModuleTestUtils.d.ts +0 -4
- package/dist/tests/renameModuleTestUtils.js +0 -76
- package/dist/tests/renameModuleTestUtils.js.map +0 -1
@@ -27,7 +27,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
27
27
|
return result;
|
28
28
|
};
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
30
|
-
exports.
|
30
|
+
exports.printLiteralValue = exports.printObjectTypeForClass = exports.printFunctionParts = exports.printType = exports.PrintTypeFlags = void 0;
|
31
31
|
const parameterUtils_1 = require("./parameterUtils");
|
32
32
|
const ParseTreeUtils = __importStar(require("./parseTreeUtils"));
|
33
33
|
const types_1 = require("./types");
|
@@ -63,7 +63,90 @@ var PrintTypeFlags;
|
|
63
63
|
// Expand TypedDict kwargs to show the keys from the TypedDict instead of **kwargs.
|
64
64
|
PrintTypeFlags[PrintTypeFlags["ExpandTypedDictArgs"] = 1024] = "ExpandTypedDictArgs";
|
65
65
|
})(PrintTypeFlags = exports.PrintTypeFlags || (exports.PrintTypeFlags = {}));
|
66
|
-
function printType(type, printTypeFlags, returnTypeCallback
|
66
|
+
function printType(type, printTypeFlags, returnTypeCallback) {
|
67
|
+
const uniqueNameMap = new UniqueNameMap(printTypeFlags, returnTypeCallback);
|
68
|
+
uniqueNameMap.build(type);
|
69
|
+
return printTypeInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, [], 0);
|
70
|
+
}
|
71
|
+
exports.printType = printType;
|
72
|
+
function printFunctionParts(type, printTypeFlags, returnTypeCallback) {
|
73
|
+
const uniqueNameMap = new UniqueNameMap(printTypeFlags, returnTypeCallback);
|
74
|
+
uniqueNameMap.build(type);
|
75
|
+
return printFunctionPartsInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, [], 0);
|
76
|
+
}
|
77
|
+
exports.printFunctionParts = printFunctionParts;
|
78
|
+
function printObjectTypeForClass(type, printTypeFlags, returnTypeCallback) {
|
79
|
+
const uniqueNameMap = new UniqueNameMap(printTypeFlags, returnTypeCallback);
|
80
|
+
uniqueNameMap.build(type);
|
81
|
+
return printObjectTypeForClassInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, [], 0);
|
82
|
+
}
|
83
|
+
exports.printObjectTypeForClass = printObjectTypeForClass;
|
84
|
+
function printLiteralValue(type, quotation = "'") {
|
85
|
+
const literalValue = type.literalValue;
|
86
|
+
if (literalValue === undefined) {
|
87
|
+
return '';
|
88
|
+
}
|
89
|
+
let literalStr;
|
90
|
+
if (typeof literalValue === 'string') {
|
91
|
+
let effectiveLiteralValue = literalValue;
|
92
|
+
// Limit the length of the string literal.
|
93
|
+
const maxLiteralStringLength = 50;
|
94
|
+
if (literalValue.length > maxLiteralStringLength) {
|
95
|
+
effectiveLiteralValue = literalValue.substring(0, maxLiteralStringLength) + '…';
|
96
|
+
}
|
97
|
+
if (type.details.name === 'bytes') {
|
98
|
+
let bytesString = '';
|
99
|
+
// There's no good built-in conversion routine in javascript to convert
|
100
|
+
// bytes strings. Determine on a character-by-character basis whether
|
101
|
+
// it can be rendered into an ASCII character. If not, use an escape.
|
102
|
+
for (let i = 0; i < effectiveLiteralValue.length; i++) {
|
103
|
+
const char = effectiveLiteralValue.substring(i, i + 1);
|
104
|
+
const charCode = char.charCodeAt(0);
|
105
|
+
if (charCode >= 20 && charCode <= 126) {
|
106
|
+
if (charCode === 34) {
|
107
|
+
bytesString += '\\' + char;
|
108
|
+
}
|
109
|
+
else {
|
110
|
+
bytesString += char;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
else {
|
114
|
+
bytesString += `\\x${((charCode >> 4) & 0xf).toString(16)}${(charCode & 0xf).toString(16)}`;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
literalStr = `b"${bytesString}"`;
|
118
|
+
}
|
119
|
+
else {
|
120
|
+
// JSON.stringify will perform proper escaping for " case.
|
121
|
+
// So, we only need to do our own escaping for ' case.
|
122
|
+
literalStr = JSON.stringify(effectiveLiteralValue).toString();
|
123
|
+
if (quotation !== '"') {
|
124
|
+
literalStr = `'${literalStr
|
125
|
+
.substring(1, literalStr.length - 1)
|
126
|
+
.replace(escapedDoubleQuoteRegEx, '"')
|
127
|
+
.replace(singleTickRegEx, "\\'")}'`;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
}
|
131
|
+
else if (typeof literalValue === 'boolean') {
|
132
|
+
literalStr = literalValue ? 'True' : 'False';
|
133
|
+
}
|
134
|
+
else if (literalValue instanceof types_1.EnumLiteral) {
|
135
|
+
literalStr = `${literalValue.className}.${literalValue.itemName}`;
|
136
|
+
}
|
137
|
+
else if (typeof literalValue === 'bigint') {
|
138
|
+
literalStr = literalValue.toString();
|
139
|
+
if (literalStr.endsWith('n')) {
|
140
|
+
literalStr = literalStr.substring(0, literalStr.length - 1);
|
141
|
+
}
|
142
|
+
}
|
143
|
+
else {
|
144
|
+
literalStr = literalValue.toString();
|
145
|
+
}
|
146
|
+
return literalStr;
|
147
|
+
}
|
148
|
+
exports.printLiteralValue = printLiteralValue;
|
149
|
+
function printTypeInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount) {
|
67
150
|
const originalPrintTypeFlags = printTypeFlags;
|
68
151
|
const parenthesizeUnion = (printTypeFlags & 16 /* ParenthesizeUnion */) !== 0;
|
69
152
|
printTypeFlags &= ~(16 /* ParenthesizeUnion */ | 128 /* ParenthesizeCallable */);
|
@@ -90,6 +173,10 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
90
173
|
try {
|
91
174
|
recursionTypes.push(type);
|
92
175
|
let aliasName = type.typeAliasInfo.name;
|
176
|
+
// Use the fully-qualified name if the name isn't unique.
|
177
|
+
if (!uniqueNameMap.isUnique(aliasName)) {
|
178
|
+
aliasName = type.typeAliasInfo.fullName;
|
179
|
+
}
|
93
180
|
const typeParams = type.typeAliasInfo.typeParameters;
|
94
181
|
if (typeParams) {
|
95
182
|
let argumentStrings;
|
@@ -107,11 +194,11 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
107
194
|
(0, typeUtils_1.isTupleClass)(typeArg) &&
|
108
195
|
typeArg.tupleTypeArguments) {
|
109
196
|
typeArg.tupleTypeArguments.forEach((tupleTypeArg) => {
|
110
|
-
argumentStrings.push(
|
197
|
+
argumentStrings.push(printTypeInternal(tupleTypeArg.type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount));
|
111
198
|
});
|
112
199
|
}
|
113
200
|
else {
|
114
|
-
argumentStrings.push(
|
201
|
+
argumentStrings.push(printTypeInternal(typeArg, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount));
|
115
202
|
}
|
116
203
|
});
|
117
204
|
}
|
@@ -121,7 +208,7 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
121
208
|
typeParams.some((typeParam) => !(0, types_1.isUnknown)(typeParam))) {
|
122
209
|
argumentStrings = [];
|
123
210
|
typeParams.forEach((typeParam) => {
|
124
|
-
argumentStrings.push(
|
211
|
+
argumentStrings.push(printTypeInternal(typeParam, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount));
|
125
212
|
});
|
126
213
|
}
|
127
214
|
}
|
@@ -158,11 +245,15 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
158
245
|
}
|
159
246
|
if (type.typeAliasInfo) {
|
160
247
|
if (!type.typeAliasInfo.typeParameters) {
|
161
|
-
|
248
|
+
let name = type.typeAliasInfo.name;
|
249
|
+
if (!uniqueNameMap.isUnique(name)) {
|
250
|
+
name = type.typeAliasInfo.fullName;
|
251
|
+
}
|
252
|
+
return name;
|
162
253
|
}
|
163
254
|
try {
|
164
255
|
recursionTypes.push(type);
|
165
|
-
return
|
256
|
+
return printTypeInternal(type, printTypeFlags & ~32 /* ExpandTypeAlias */, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
166
257
|
}
|
167
258
|
finally {
|
168
259
|
recursionTypes.pop();
|
@@ -200,7 +291,7 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
200
291
|
if (type.literalValue !== undefined) {
|
201
292
|
return `Literal[${printLiteralValue(type)}]`;
|
202
293
|
}
|
203
|
-
return `${
|
294
|
+
return `${printObjectTypeForClassInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount)}${getConditionalIndicator(type)}`;
|
204
295
|
}
|
205
296
|
else {
|
206
297
|
let typeToWrap;
|
@@ -208,21 +299,21 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
208
299
|
typeToWrap = `Literal[${printLiteralValue(type)}]`;
|
209
300
|
}
|
210
301
|
else {
|
211
|
-
typeToWrap = `${
|
302
|
+
typeToWrap = `${printObjectTypeForClassInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount)}`;
|
212
303
|
}
|
213
304
|
return `${_printNestedInstantiable(type, typeToWrap)}${getConditionalIndicator(type)}`;
|
214
305
|
}
|
215
306
|
}
|
216
307
|
case 5 /* Function */: {
|
217
308
|
if (types_1.TypeBase.isInstantiable(type)) {
|
218
|
-
const typeString = printFunctionType(types_1.TypeBase.cloneTypeAsInstance(type), printTypeFlags, returnTypeCallback, recursionTypes, recursionCount);
|
309
|
+
const typeString = printFunctionType(types_1.TypeBase.cloneTypeAsInstance(type), printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
219
310
|
return `Type[${typeString}]`;
|
220
311
|
}
|
221
|
-
return printFunctionType(type, originalPrintTypeFlags, returnTypeCallback, recursionTypes, recursionCount);
|
312
|
+
return printFunctionType(type, originalPrintTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
222
313
|
}
|
223
314
|
case 6 /* OverloadedFunction */: {
|
224
315
|
const overloadedType = type;
|
225
|
-
const overloads = overloadedType.overloads.map((overload) =>
|
316
|
+
const overloads = overloadedType.overloads.map((overload) => printTypeInternal(overload, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount));
|
226
317
|
if (printTypeFlags & 256 /* PythonSyntax */) {
|
227
318
|
return 'Callable[..., Any]';
|
228
319
|
}
|
@@ -266,7 +357,7 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
266
357
|
}
|
267
358
|
}
|
268
359
|
if (matchedAllSubtypes && !allSubtypesPreviouslyHandled) {
|
269
|
-
subtypeStrings.add(
|
360
|
+
subtypeStrings.add(printTypeInternal(typeAliasSource, updatedPrintTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount));
|
270
361
|
indicesCoveredByTypeAlias.forEach((index) => subtypeHandledSet.add(index));
|
271
362
|
}
|
272
363
|
}
|
@@ -277,7 +368,7 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
277
368
|
if ((0, types_1.isNever)(typeWithoutNone)) {
|
278
369
|
return 'None';
|
279
370
|
}
|
280
|
-
const optionalType =
|
371
|
+
const optionalType = printTypeInternal(typeWithoutNone, updatedPrintTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
281
372
|
if (printTypeFlags & 8 /* PEP604 */) {
|
282
373
|
const unionString = optionalType + ' | None';
|
283
374
|
if (parenthesizeUnion) {
|
@@ -298,7 +389,7 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
298
389
|
literalClassStrings.add(printLiteralValue(subtype));
|
299
390
|
}
|
300
391
|
else {
|
301
|
-
subtypeStrings.add(
|
392
|
+
subtypeStrings.add(printTypeInternal(subtype, updatedPrintTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount));
|
302
393
|
}
|
303
394
|
}
|
304
395
|
});
|
@@ -336,9 +427,9 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
336
427
|
// aliases, return the type alias name.
|
337
428
|
if (type.details.recursiveTypeAliasName) {
|
338
429
|
if ((printTypeFlags & 32 /* ExpandTypeAlias */) !== 0 && type.details.boundType) {
|
339
|
-
return
|
430
|
+
return printTypeInternal(types_1.TypeBase.isInstance(type)
|
340
431
|
? (0, typeUtils_1.convertToInstance)(type.details.boundType)
|
341
|
-
: type.details.boundType, printTypeFlags, returnTypeCallback, recursionTypes, recursionCount);
|
432
|
+
: type.details.boundType, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
342
433
|
}
|
343
434
|
return type.details.recursiveTypeAliasName;
|
344
435
|
}
|
@@ -346,7 +437,7 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
346
437
|
// print the type with a special character that indicates that the type
|
347
438
|
// is internally represented as a TypeVar.
|
348
439
|
if (type.details.isSynthesizedSelf && type.details.boundType) {
|
349
|
-
let boundTypeString =
|
440
|
+
let boundTypeString = printTypeInternal(type.details.boundType, printTypeFlags & ~32 /* ExpandTypeAlias */, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
350
441
|
if (!(0, types_1.isAnyOrUnknown)(type.details.boundType)) {
|
351
442
|
if (printTypeFlags & 256 /* PythonSyntax */) {
|
352
443
|
boundTypeString = `Self`;
|
@@ -399,8 +490,7 @@ function printType(type, printTypeFlags, returnTypeCallback, recursionTypes = []
|
|
399
490
|
recursionTypes.pop();
|
400
491
|
}
|
401
492
|
}
|
402
|
-
|
403
|
-
function printFunctionType(type, printTypeFlags, returnTypeCallback, recursionTypes = [], recursionCount = 0) {
|
493
|
+
function printFunctionType(type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount) {
|
404
494
|
if (printTypeFlags & 256 /* PythonSyntax */) {
|
405
495
|
// Callable works only in cases where all parameters are positional-only.
|
406
496
|
let isPositionalParamsOnly = false;
|
@@ -418,7 +508,7 @@ function printFunctionType(type, printTypeFlags, returnTypeCallback, recursionTy
|
|
418
508
|
const returnType = returnTypeCallback(type);
|
419
509
|
let returnTypeString = 'Any';
|
420
510
|
if (returnType) {
|
421
|
-
returnTypeString =
|
511
|
+
returnTypeString = printTypeInternal(returnType, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
422
512
|
}
|
423
513
|
if (isPositionalParamsOnly) {
|
424
514
|
const paramTypes = [];
|
@@ -426,7 +516,7 @@ function printFunctionType(type, printTypeFlags, returnTypeCallback, recursionTy
|
|
426
516
|
if (param.name) {
|
427
517
|
const paramType = types_1.FunctionType.getEffectiveParameterType(type, index);
|
428
518
|
if (recursionTypes.length < types_1.maxTypeRecursionCount) {
|
429
|
-
paramTypes.push(
|
519
|
+
paramTypes.push(printTypeInternal(paramType, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount));
|
430
520
|
}
|
431
521
|
else {
|
432
522
|
paramTypes.push('Any');
|
@@ -448,7 +538,7 @@ function printFunctionType(type, printTypeFlags, returnTypeCallback, recursionTy
|
|
448
538
|
}
|
449
539
|
}
|
450
540
|
else {
|
451
|
-
const parts =
|
541
|
+
const parts = printFunctionPartsInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
452
542
|
const paramSignature = `(${parts[0].join(', ')})`;
|
453
543
|
if (types_1.FunctionType.isParamSpecValue(type)) {
|
454
544
|
return paramSignature;
|
@@ -461,74 +551,13 @@ function printFunctionType(type, printTypeFlags, returnTypeCallback, recursionTy
|
|
461
551
|
return fullSignature;
|
462
552
|
}
|
463
553
|
}
|
464
|
-
function
|
465
|
-
const literalValue = type.literalValue;
|
466
|
-
if (literalValue === undefined) {
|
467
|
-
return '';
|
468
|
-
}
|
469
|
-
let literalStr;
|
470
|
-
if (typeof literalValue === 'string') {
|
471
|
-
let effectiveLiteralValue = literalValue;
|
472
|
-
// Limit the length of the string literal.
|
473
|
-
const maxLiteralStringLength = 50;
|
474
|
-
if (literalValue.length > maxLiteralStringLength) {
|
475
|
-
effectiveLiteralValue = literalValue.substring(0, maxLiteralStringLength) + '…';
|
476
|
-
}
|
477
|
-
if (type.details.name === 'bytes') {
|
478
|
-
let bytesString = '';
|
479
|
-
// There's no good built-in conversion routine in javascript to convert
|
480
|
-
// bytes strings. Determine on a character-by-character basis whether
|
481
|
-
// it can be rendered into an ASCII character. If not, use an escape.
|
482
|
-
for (let i = 0; i < effectiveLiteralValue.length; i++) {
|
483
|
-
const char = effectiveLiteralValue.substring(i, i + 1);
|
484
|
-
const charCode = char.charCodeAt(0);
|
485
|
-
if (charCode >= 20 && charCode <= 126) {
|
486
|
-
if (charCode === 34) {
|
487
|
-
bytesString += '\\' + char;
|
488
|
-
}
|
489
|
-
else {
|
490
|
-
bytesString += char;
|
491
|
-
}
|
492
|
-
}
|
493
|
-
else {
|
494
|
-
bytesString += `\\x${((charCode >> 4) & 0xf).toString(16)}${(charCode & 0xf).toString(16)}`;
|
495
|
-
}
|
496
|
-
}
|
497
|
-
literalStr = `b"${bytesString}"`;
|
498
|
-
}
|
499
|
-
else {
|
500
|
-
// JSON.stringify will perform proper escaping for " case.
|
501
|
-
// So, we only need to do our own escaping for ' case.
|
502
|
-
literalStr = JSON.stringify(effectiveLiteralValue).toString();
|
503
|
-
if (quotation !== '"') {
|
504
|
-
literalStr = `'${literalStr
|
505
|
-
.substring(1, literalStr.length - 1)
|
506
|
-
.replace(escapedDoubleQuoteRegEx, '"')
|
507
|
-
.replace(singleTickRegEx, "\\'")}'`;
|
508
|
-
}
|
509
|
-
}
|
510
|
-
}
|
511
|
-
else if (typeof literalValue === 'boolean') {
|
512
|
-
literalStr = literalValue ? 'True' : 'False';
|
513
|
-
}
|
514
|
-
else if (literalValue instanceof types_1.EnumLiteral) {
|
515
|
-
literalStr = `${literalValue.className}.${literalValue.itemName}`;
|
516
|
-
}
|
517
|
-
else if (typeof literalValue === 'bigint') {
|
518
|
-
literalStr = literalValue.toString();
|
519
|
-
if (literalStr.endsWith('n')) {
|
520
|
-
literalStr = literalStr.substring(0, literalStr.length - 1);
|
521
|
-
}
|
522
|
-
}
|
523
|
-
else {
|
524
|
-
literalStr = literalValue.toString();
|
525
|
-
}
|
526
|
-
return literalStr;
|
527
|
-
}
|
528
|
-
exports.printLiteralValue = printLiteralValue;
|
529
|
-
function printObjectTypeForClass(type, printTypeFlags, returnTypeCallback, recursionTypes = [], recursionCount = 0) {
|
554
|
+
function printObjectTypeForClassInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount) {
|
530
555
|
var _a, _b;
|
531
556
|
let objName = type.aliasName || type.details.name;
|
557
|
+
// Use the fully-qualified name if the name isn't unique.
|
558
|
+
if (!uniqueNameMap.isUnique(objName)) {
|
559
|
+
objName = type.details.fullName;
|
560
|
+
}
|
532
561
|
// If this is a pseudo-generic class, don't display the type arguments
|
533
562
|
// or type parameters because it will confuse users.
|
534
563
|
if (!types_1.ClassType.isPseudoGenericClass(type)) {
|
@@ -565,7 +594,7 @@ function printObjectTypeForClass(type, printTypeFlags, returnTypeCallback, recur
|
|
565
594
|
if (!(0, types_1.isUnknown)(typeArg.type)) {
|
566
595
|
isAllUnknown = false;
|
567
596
|
}
|
568
|
-
const typeArgText =
|
597
|
+
const typeArgText = printTypeInternal(typeArg.type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
569
598
|
if (typeArg.isUnbounded) {
|
570
599
|
return _printUnpack(`tuple[${typeArgText}, ...]`, printTypeFlags);
|
571
600
|
}
|
@@ -577,7 +606,7 @@ function printObjectTypeForClass(type, printTypeFlags, returnTypeCallback, recur
|
|
577
606
|
if (!(0, types_1.isUnknown)(typeArg.type)) {
|
578
607
|
isAllUnknown = false;
|
579
608
|
}
|
580
|
-
const typeArgTypeText =
|
609
|
+
const typeArgTypeText = printTypeInternal(typeArg.type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
581
610
|
if (typeArg.isUnbounded) {
|
582
611
|
if (typeArgs.length === 1) {
|
583
612
|
typeArgStrings.push(typeArgTypeText, '...');
|
@@ -618,7 +647,7 @@ function printObjectTypeForClass(type, printTypeFlags, returnTypeCallback, recur
|
|
618
647
|
'[' +
|
619
648
|
typeParams
|
620
649
|
.map((typeParam) => {
|
621
|
-
return
|
650
|
+
return printTypeInternal(typeParam, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
622
651
|
})
|
623
652
|
.join(', ') +
|
624
653
|
']';
|
@@ -628,8 +657,7 @@ function printObjectTypeForClass(type, printTypeFlags, returnTypeCallback, recur
|
|
628
657
|
}
|
629
658
|
return objName;
|
630
659
|
}
|
631
|
-
|
632
|
-
function printFunctionParts(type, printTypeFlags, returnTypeCallback, recursionTypes = [], recursionCount = 0) {
|
660
|
+
function printFunctionPartsInternal(type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount) {
|
633
661
|
const paramTypeStrings = [];
|
634
662
|
let sawDefinedName = false;
|
635
663
|
type.details.parameters.forEach((param, index) => {
|
@@ -642,7 +670,7 @@ function printFunctionParts(type, printTypeFlags, returnTypeCallback, recursionT
|
|
642
670
|
types_1.ClassType.isBuiltIn(specializedParamType, 'tuple') &&
|
643
671
|
specializedParamType.tupleTypeArguments) {
|
644
672
|
specializedParamType.tupleTypeArguments.forEach((paramType) => {
|
645
|
-
const paramString =
|
673
|
+
const paramString = printTypeInternal(paramType.type, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
646
674
|
paramTypeStrings.push(paramString);
|
647
675
|
});
|
648
676
|
return;
|
@@ -653,7 +681,7 @@ function printFunctionParts(type, printTypeFlags, returnTypeCallback, recursionT
|
|
653
681
|
printTypeFlags & 1024 /* ExpandTypedDictArgs */ &&
|
654
682
|
param.type.category === 7 /* Class */) {
|
655
683
|
param.type.details.typedDictEntries.forEach((v, k) => {
|
656
|
-
const valueTypeString =
|
684
|
+
const valueTypeString = printTypeInternal(v.valueType, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount);
|
657
685
|
paramTypeStrings.push(`${k}: ${valueTypeString}`);
|
658
686
|
});
|
659
687
|
return;
|
@@ -685,7 +713,7 @@ function printFunctionParts(type, printTypeFlags, returnTypeCallback, recursionT
|
|
685
713
|
if (param.hasDeclaredType || param.isTypeInferred) {
|
686
714
|
const paramType = types_1.FunctionType.getEffectiveParameterType(type, index);
|
687
715
|
let paramTypeString = recursionTypes.length < types_1.maxTypeRecursionCount
|
688
|
-
?
|
716
|
+
? printTypeInternal(paramType, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount)
|
689
717
|
: '';
|
690
718
|
if (emittedParamName) {
|
691
719
|
paramString += ': ';
|
@@ -763,16 +791,15 @@ function printFunctionParts(type, printTypeFlags, returnTypeCallback, recursionT
|
|
763
791
|
paramTypeStrings.push(`**kwargs: ${type.details.paramSpec}.kwargs`);
|
764
792
|
}
|
765
793
|
else {
|
766
|
-
paramTypeStrings.push(`**${
|
794
|
+
paramTypeStrings.push(`**${printTypeInternal(type.details.paramSpec, printTypeFlags, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount)}`);
|
767
795
|
}
|
768
796
|
}
|
769
797
|
const returnType = returnTypeCallback(type);
|
770
798
|
const returnTypeString = recursionTypes.length < types_1.maxTypeRecursionCount
|
771
|
-
?
|
799
|
+
? printTypeInternal(returnType, printTypeFlags | 16 /* ParenthesizeUnion */ | 128 /* ParenthesizeCallable */, returnTypeCallback, uniqueNameMap, recursionTypes, recursionCount)
|
772
800
|
: '';
|
773
801
|
return [paramTypeStrings, returnTypeString];
|
774
802
|
}
|
775
|
-
exports.printFunctionParts = printFunctionParts;
|
776
803
|
function _printUnpack(textToWrap, flags) {
|
777
804
|
return flags & 512 /* UseTypingUnpack */ ? `Unpack[${textToWrap}]` : `*${textToWrap}`;
|
778
805
|
}
|
@@ -792,4 +819,124 @@ function _getReadableTypeVarName(type, usePythonSyntax) {
|
|
792
819
|
}
|
793
820
|
return types_1.TypeVarType.getReadableName(type);
|
794
821
|
}
|
822
|
+
// Represents a map of named types (classes and type aliases) that appear within
|
823
|
+
// a specified type to determine whether any of the names require disambiguation
|
824
|
+
// (i.e. their fully-qualified name is required).
|
825
|
+
class UniqueNameMap {
|
826
|
+
constructor(_printTypeFlags, _returnTypeCallback) {
|
827
|
+
this._printTypeFlags = _printTypeFlags;
|
828
|
+
this._returnTypeCallback = _returnTypeCallback;
|
829
|
+
this._map = new Map();
|
830
|
+
}
|
831
|
+
build(type, recursionTypes = [], recursionCount = 0) {
|
832
|
+
var _a;
|
833
|
+
if (recursionCount > types_1.maxTypeRecursionCount) {
|
834
|
+
return;
|
835
|
+
}
|
836
|
+
recursionCount++;
|
837
|
+
if (type.typeAliasInfo) {
|
838
|
+
let expandTypeAlias = true;
|
839
|
+
if ((this._printTypeFlags & 32 /* ExpandTypeAlias */) === 0) {
|
840
|
+
expandTypeAlias = false;
|
841
|
+
}
|
842
|
+
else {
|
843
|
+
if (recursionTypes.find((t) => t === type)) {
|
844
|
+
expandTypeAlias = false;
|
845
|
+
}
|
846
|
+
}
|
847
|
+
if (!expandTypeAlias) {
|
848
|
+
this._addIfUnique(type.typeAliasInfo.name, type, /* useTypeAliasName */ true);
|
849
|
+
// Recursively add the type arguments if present.
|
850
|
+
if (type.typeAliasInfo.typeArguments) {
|
851
|
+
recursionTypes.push(type);
|
852
|
+
try {
|
853
|
+
type.typeAliasInfo.typeArguments.forEach((typeArg) => {
|
854
|
+
this.build(typeArg, recursionTypes, recursionCount);
|
855
|
+
});
|
856
|
+
}
|
857
|
+
finally {
|
858
|
+
recursionTypes.pop();
|
859
|
+
}
|
860
|
+
}
|
861
|
+
return;
|
862
|
+
}
|
863
|
+
}
|
864
|
+
try {
|
865
|
+
recursionTypes.push(type);
|
866
|
+
switch (type.category) {
|
867
|
+
case 5 /* Function */: {
|
868
|
+
type.details.parameters.forEach((_, index) => {
|
869
|
+
const paramType = types_1.FunctionType.getEffectiveParameterType(type, index);
|
870
|
+
this.build(paramType, recursionTypes, recursionCount);
|
871
|
+
});
|
872
|
+
const returnType = this._returnTypeCallback(type);
|
873
|
+
this.build(returnType, recursionTypes, recursionCount);
|
874
|
+
break;
|
875
|
+
}
|
876
|
+
case 6 /* OverloadedFunction */: {
|
877
|
+
type.overloads.forEach((overload) => {
|
878
|
+
this.build(overload, recursionTypes, recursionCount);
|
879
|
+
});
|
880
|
+
break;
|
881
|
+
}
|
882
|
+
case 7 /* Class */: {
|
883
|
+
if (type.literalValue !== undefined) {
|
884
|
+
break;
|
885
|
+
}
|
886
|
+
this._addIfUnique(type.aliasName || type.details.name, type);
|
887
|
+
if (!types_1.ClassType.isPseudoGenericClass(type)) {
|
888
|
+
if (type.tupleTypeArguments) {
|
889
|
+
type.tupleTypeArguments.forEach((typeArg) => {
|
890
|
+
this.build(typeArg.type, recursionTypes, recursionCount);
|
891
|
+
});
|
892
|
+
}
|
893
|
+
else if (type.typeArguments) {
|
894
|
+
type.typeArguments.forEach((typeArg) => {
|
895
|
+
this.build(typeArg, recursionTypes, recursionCount);
|
896
|
+
});
|
897
|
+
}
|
898
|
+
}
|
899
|
+
break;
|
900
|
+
}
|
901
|
+
case 9 /* Union */: {
|
902
|
+
(0, typeUtils_1.doForEachSubtype)(type, (subtype) => {
|
903
|
+
this.build(subtype, recursionTypes, recursionCount);
|
904
|
+
});
|
905
|
+
(_a = type.typeAliasSources) === null || _a === void 0 ? void 0 : _a.forEach((typeAliasSource) => {
|
906
|
+
this.build(typeAliasSource, recursionTypes, recursionCount);
|
907
|
+
});
|
908
|
+
break;
|
909
|
+
}
|
910
|
+
}
|
911
|
+
}
|
912
|
+
finally {
|
913
|
+
recursionTypes.pop();
|
914
|
+
}
|
915
|
+
}
|
916
|
+
isUnique(name) {
|
917
|
+
const entry = this._map.get(name);
|
918
|
+
return !entry || entry.length === 1;
|
919
|
+
}
|
920
|
+
_addIfUnique(name, type, useTypeAliasName = false) {
|
921
|
+
const existingEntry = this._map.get(name);
|
922
|
+
if (!existingEntry) {
|
923
|
+
this._map.set(name, [type]);
|
924
|
+
}
|
925
|
+
else {
|
926
|
+
if (!existingEntry.some((t) => this._isSameTypeName(t, type, useTypeAliasName))) {
|
927
|
+
existingEntry.push(type);
|
928
|
+
}
|
929
|
+
}
|
930
|
+
}
|
931
|
+
_isSameTypeName(type1, type2, useTypeAliasName) {
|
932
|
+
var _a, _b;
|
933
|
+
if (useTypeAliasName) {
|
934
|
+
return ((_a = type1.typeAliasInfo) === null || _a === void 0 ? void 0 : _a.fullName) === ((_b = type2.typeAliasInfo) === null || _b === void 0 ? void 0 : _b.fullName);
|
935
|
+
}
|
936
|
+
if ((0, types_1.isClass)(type1) && (0, types_1.isClass)(type2)) {
|
937
|
+
return types_1.ClassType.isSameGenericClass(type1, type2);
|
938
|
+
}
|
939
|
+
return false;
|
940
|
+
}
|
941
|
+
}
|
795
942
|
//# sourceMappingURL=typePrinter.js.map
|