@zzzen/pyright-internal 1.2.0-dev.20230604 → 1.2.0-dev.20230618
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/checker.js +53 -32
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +17 -11
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +3 -2
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +1 -1
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +2 -0
- package/dist/analyzer/importResolver.js +57 -35
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/operations.js +2 -0
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/program.d.ts +2 -2
- package/dist/analyzer/program.js +12 -33
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +1 -1
- package/dist/analyzer/protocols.js +225 -205
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +2 -2
- package/dist/analyzer/service.js +15 -7
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +272 -137
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +5 -2
- package/dist/analyzer/typeEvaluatorTypes.js +2 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +1 -1
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +20 -21
- package/dist/analyzer/typeUtils.js +162 -107
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +2 -0
- package/dist/analyzer/types.js +7 -3
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +1 -1
- package/dist/backgroundAnalysisBase.js +2 -2
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +12 -9
- package/dist/backgroundThreadBase.js +28 -20
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/common/charCodes.d.ts +147 -0
- package/dist/common/charCodes.js +164 -0
- package/dist/common/charCodes.js.map +1 -0
- package/dist/common/extensibility.d.ts +6 -2
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/realFileSystem.js +3 -0
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/workspaceEditUtils.d.ts +3 -3
- package/dist/common/workspaceEditUtils.js +23 -13
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +51 -3
- package/dist/languageServerBase.js +5 -5
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/completionProvider.js +2 -0
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +2 -0
- package/dist/languageService/definitionProvider.js +82 -74
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.d.ts +16 -8
- package/dist/languageService/hoverProvider.js +53 -53
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +7 -6
- package/dist/localization/localize.js +3 -3
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +3 -3
- package/dist/parser/characterStream.js.map +1 -1
- package/dist/parser/characters.js.map +1 -1
- package/dist/parser/parser.js +5 -2
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/stringTokenUtils.js.map +1 -1
- package/dist/parser/tokenizer.js +10 -1
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/pyright.js +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +1 -0
- package/dist/pyrightFileSystem.js +3 -0
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +1 -0
- package/dist/readonlyAugmentedFileSystem.js +3 -0
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/tests/checker.test.js +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.d.ts +1 -0
- package/dist/tests/harness/fourslash/testLanguageService.js +3 -0
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +2 -2
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +12 -1
- package/dist/tests/harness/vfs/filesystem.js +33 -6
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/tokenizer.test.js +13 -2
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +5 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +17 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +10 -2
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -1
- package/dist/tests/workspaceEditUtils.test.js +2 -3
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +2 -0
- package/dist/workspaceFactory.js +11 -2
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -2
@@ -71,9 +71,7 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
|
|
71
71
|
if ((flags & 1 /* EnforceInvariance */) !== 0) {
|
72
72
|
return (0, types_1.isTypeSame)(destType, srcType);
|
73
73
|
}
|
74
|
-
|
75
|
-
const genericDestType = types_1.ClassType.cloneForSpecialization(destType, undefined, /* isTypeArgumentExplicit */ false);
|
76
|
-
const genericDestTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
|
74
|
+
const protocolTypeVarContext = createProtocolTypeVarContext(evaluator, destType, destTypeVarContext);
|
77
75
|
const selfTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
|
78
76
|
const noLiteralSrcType = evaluator.stripLiteralValue(srcType);
|
79
77
|
(0, typeUtils_1.populateTypeVarContextForSelfType)(selfTypeVarContext, destType, noLiteralSrcType);
|
@@ -109,170 +107,168 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
|
|
109
107
|
if (!typesAreConsistent && !diag) {
|
110
108
|
return;
|
111
109
|
}
|
112
|
-
if (symbol.isClassMember()
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
110
|
+
if (!symbol.isClassMember() || symbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
|
111
|
+
return;
|
112
|
+
}
|
113
|
+
let isMemberFromMetaclass = false;
|
114
|
+
let srcMemberInfo;
|
115
|
+
// Special-case the `__class_getitem__` for normal protocol comparison.
|
116
|
+
// This is a convention agreed upon by typeshed maintainers.
|
117
|
+
if (!treatSourceAsInstantiable && name === '__class_getitem__') {
|
118
|
+
return;
|
119
|
+
}
|
120
|
+
// Special-case the `__slots__` entry for all protocol comparisons.
|
121
|
+
// This is a convention agreed upon by typeshed maintainers.
|
122
|
+
if (name === '__slots__') {
|
123
|
+
return;
|
124
|
+
}
|
125
|
+
// Note that we've already checked this symbol. It doesn't need to
|
126
|
+
// be checked again even if it is declared by a subclass.
|
127
|
+
checkedSymbolSet.add(name);
|
128
|
+
// Look in the metaclass first if we're treating the source as an instantiable class.
|
129
|
+
if (treatSourceAsInstantiable &&
|
130
|
+
srcType.details.effectiveMetaclass &&
|
131
|
+
(0, types_1.isInstantiableClass)(srcType.details.effectiveMetaclass)) {
|
132
|
+
srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType.details.effectiveMetaclass, name);
|
133
|
+
if (srcMemberInfo) {
|
134
|
+
srcClassTypeVarContext.addSolveForScope((0, typeUtils_1.getTypeVarScopeId)(srcType.details.effectiveMetaclass));
|
135
|
+
isMemberFromMetaclass = true;
|
119
136
|
}
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
137
|
+
}
|
138
|
+
if (!srcMemberInfo) {
|
139
|
+
srcMemberInfo = (0, typeUtils_1.lookUpClassMember)(srcType, name);
|
140
|
+
}
|
141
|
+
if (!srcMemberInfo) {
|
142
|
+
diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
|
143
|
+
typesAreConsistent = false;
|
144
|
+
return;
|
145
|
+
}
|
146
|
+
if (symbol.isClassVar() && !srcMemberInfo.symbol.isClassVar() && !srcMemberInfo.symbol.isClassMember()) {
|
147
|
+
diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberClassVar().format({ name }));
|
148
|
+
typesAreConsistent = false;
|
149
|
+
}
|
150
|
+
let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
|
151
|
+
if (!destMemberType) {
|
152
|
+
return;
|
153
|
+
}
|
154
|
+
// Partially specialize the type of the symbol based on the MRO class.
|
155
|
+
// We can skip this if it's the dest class because it is already
|
156
|
+
// specialized.
|
157
|
+
if (!types_1.ClassType.isSameGenericClass(mroClass, destType)) {
|
158
|
+
destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, mroClass, srcType);
|
159
|
+
}
|
160
|
+
let srcMemberType;
|
161
|
+
if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
|
162
|
+
const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
|
163
|
+
// If this is a function, infer its return type prior to specializing it.
|
164
|
+
if ((0, types_1.isFunction)(symbolType)) {
|
165
|
+
evaluator.inferReturnTypeIfNecessary(symbolType);
|
124
166
|
}
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
167
|
+
srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
|
168
|
+
}
|
169
|
+
else {
|
170
|
+
srcMemberType = types_1.UnknownType.create();
|
171
|
+
}
|
172
|
+
if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
|
173
|
+
if (isMemberFromMetaclass) {
|
174
|
+
const boundSrcFunction = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), srcMemberType,
|
175
|
+
/* memberClass */ undefined,
|
176
|
+
/* errorNode */ undefined, recursionCount,
|
177
|
+
/* treatConstructorAsClassMember */ false, srcType);
|
178
|
+
if (boundSrcFunction) {
|
179
|
+
srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
|
180
|
+
}
|
181
|
+
if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
|
182
|
+
const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType,
|
183
|
+
/* memberClass */ undefined,
|
184
|
+
/* errorNode */ undefined, recursionCount,
|
185
|
+
/* treatConstructorAsClassMember */ false, srcType);
|
186
|
+
if (boundDeclaredType) {
|
187
|
+
destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
|
188
|
+
}
|
136
189
|
}
|
137
190
|
}
|
138
|
-
if (
|
139
|
-
|
191
|
+
else if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
|
192
|
+
// Replace any "Self" TypeVar within the dest with the source type.
|
193
|
+
destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
|
194
|
+
const boundSrcFunction = evaluator.bindFunctionToClassOrObject(treatSourceAsInstantiable ? srcType : types_1.ClassType.cloneAsInstance(srcType), srcMemberType, srcMemberInfo.classType,
|
195
|
+
/* errorNode */ undefined, recursionCount);
|
196
|
+
if (boundSrcFunction) {
|
197
|
+
srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
|
198
|
+
}
|
199
|
+
if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
|
200
|
+
const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType, srcMemberInfo.classType,
|
201
|
+
/* errorNode */ undefined, recursionCount);
|
202
|
+
if (boundDeclaredType) {
|
203
|
+
destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
|
204
|
+
}
|
205
|
+
}
|
140
206
|
}
|
141
|
-
|
142
|
-
|
143
|
-
|
207
|
+
}
|
208
|
+
else {
|
209
|
+
// Replace any "Self" TypeVar within the dest with the source type.
|
210
|
+
destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
|
211
|
+
}
|
212
|
+
const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
|
213
|
+
// Properties require special processing.
|
214
|
+
if ((0, types_1.isClassInstance)(destMemberType) && types_1.ClassType.isPropertyClass(destMemberType)) {
|
215
|
+
if ((0, types_1.isClassInstance)(srcMemberType) &&
|
216
|
+
types_1.ClassType.isPropertyClass(srcMemberType) &&
|
217
|
+
!treatSourceAsInstantiable) {
|
218
|
+
if (!(0, properties_1.assignProperty)(evaluator, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), mroClass, srcType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext, selfTypeVarContext, recursionCount)) {
|
219
|
+
if (subDiag) {
|
220
|
+
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
221
|
+
}
|
222
|
+
typesAreConsistent = false;
|
223
|
+
}
|
144
224
|
}
|
145
225
|
else {
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
let srcMemberType;
|
155
|
-
if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
|
156
|
-
const symbolType = evaluator.getEffectiveTypeOfSymbol(srcMemberInfo.symbol);
|
157
|
-
// If this is a function, infer its return type prior to specializing it.
|
158
|
-
if ((0, types_1.isFunction)(symbolType)) {
|
159
|
-
evaluator.inferReturnTypeIfNecessary(symbolType);
|
160
|
-
}
|
161
|
-
srcMemberType = (0, typeUtils_1.partiallySpecializeType)(symbolType, srcMemberInfo.classType, noLiteralSrcType);
|
162
|
-
}
|
163
|
-
else {
|
164
|
-
srcMemberType = types_1.UnknownType.create();
|
165
|
-
}
|
166
|
-
if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
|
167
|
-
if (isMemberFromMetaclass) {
|
168
|
-
const boundSrcFunction = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), srcMemberType,
|
169
|
-
/* memberClass */ undefined,
|
170
|
-
/* errorNode */ undefined, recursionCount,
|
171
|
-
/* treatConstructorAsClassMember */ false, srcType);
|
172
|
-
if (boundSrcFunction) {
|
173
|
-
srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
|
174
|
-
}
|
175
|
-
if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
|
176
|
-
const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType,
|
177
|
-
/* memberClass */ undefined,
|
178
|
-
/* errorNode */ undefined, recursionCount,
|
179
|
-
/* treatConstructorAsClassMember */ false, srcType);
|
180
|
-
if (boundDeclaredType) {
|
181
|
-
destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
|
182
|
-
}
|
183
|
-
}
|
184
|
-
}
|
185
|
-
else if ((0, types_1.isInstantiableClass)(srcMemberInfo.classType)) {
|
186
|
-
// Replace any "Self" TypeVar within the dest with the source type.
|
187
|
-
destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
|
188
|
-
const boundSrcFunction = evaluator.bindFunctionToClassOrObject(treatSourceAsInstantiable ? srcType : types_1.ClassType.cloneAsInstance(srcType), srcMemberType, srcMemberInfo.classType,
|
189
|
-
/* errorNode */ undefined, recursionCount);
|
190
|
-
if (boundSrcFunction) {
|
191
|
-
srcMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundSrcFunction);
|
192
|
-
}
|
193
|
-
if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
|
194
|
-
const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(srcType), destMemberType, srcMemberInfo.classType,
|
195
|
-
/* errorNode */ undefined, recursionCount);
|
196
|
-
if (boundDeclaredType) {
|
197
|
-
destMemberType = (0, typeUtils_1.removeParamSpecVariadicsFromSignature)(boundDeclaredType);
|
198
|
-
}
|
199
|
-
}
|
200
|
-
}
|
201
|
-
}
|
202
|
-
else {
|
203
|
-
// Replace any "Self" TypeVar within the dest with the source type.
|
204
|
-
destMemberType = (0, typeUtils_1.applySolvedTypeVars)(destMemberType, selfTypeVarContext);
|
205
|
-
}
|
206
|
-
const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
|
207
|
-
// Properties require special processing.
|
208
|
-
if ((0, types_1.isClassInstance)(destMemberType) && types_1.ClassType.isPropertyClass(destMemberType)) {
|
209
|
-
if ((0, types_1.isClassInstance)(srcMemberType) &&
|
210
|
-
types_1.ClassType.isPropertyClass(srcMemberType) &&
|
211
|
-
!treatSourceAsInstantiable) {
|
212
|
-
if (!(0, properties_1.assignProperty)(evaluator, types_1.ClassType.cloneAsInstantiable(destMemberType), types_1.ClassType.cloneAsInstantiable(srcMemberType), mroClass, srcType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext, selfTypeVarContext, recursionCount)) {
|
213
|
-
if (subDiag) {
|
214
|
-
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
215
|
-
}
|
216
|
-
typesAreConsistent = false;
|
217
|
-
}
|
218
|
-
}
|
219
|
-
else {
|
220
|
-
// Extract the property type from the property class.
|
221
|
-
const getterType = evaluator.getGetterTypeFromProperty(destMemberType,
|
222
|
-
/* inferTypeIfNeeded */ true);
|
223
|
-
if (!getterType ||
|
224
|
-
!evaluator.assignType(getterType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
|
225
|
-
/* srcTypeVarContext */ undefined, assignTypeFlags, recursionCount)) {
|
226
|
-
if (subDiag) {
|
227
|
-
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
228
|
-
}
|
229
|
-
typesAreConsistent = false;
|
230
|
-
}
|
231
|
-
}
|
232
|
-
}
|
233
|
-
else {
|
234
|
-
// Class and instance variables that are mutable need to
|
235
|
-
// enforce invariance.
|
236
|
-
const primaryDecl = symbol.getDeclarations()[0];
|
237
|
-
const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
|
238
|
-
if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
|
239
|
-
/* srcTypeVarContext */ undefined, isInvariant ? assignTypeFlags | 1 /* EnforceInvariance */ : assignTypeFlags, recursionCount)) {
|
240
|
-
if (subDiag) {
|
241
|
-
if (isInvariant) {
|
242
|
-
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsInvariant().format({ name }));
|
243
|
-
}
|
244
|
-
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
245
|
-
}
|
246
|
-
typesAreConsistent = false;
|
247
|
-
}
|
226
|
+
// Extract the property type from the property class.
|
227
|
+
const getterType = evaluator.getGetterTypeFromProperty(destMemberType,
|
228
|
+
/* inferTypeIfNeeded */ true);
|
229
|
+
if (!getterType ||
|
230
|
+
!evaluator.assignType(getterType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext,
|
231
|
+
/* srcTypeVarContext */ undefined, assignTypeFlags, recursionCount)) {
|
232
|
+
if (subDiag) {
|
233
|
+
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
248
234
|
}
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
if (subDiag) {
|
263
|
-
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsNotFinalInProtocol().format({ name }));
|
264
|
-
}
|
265
|
-
}
|
266
|
-
typesAreConsistent = false;
|
235
|
+
typesAreConsistent = false;
|
236
|
+
}
|
237
|
+
}
|
238
|
+
}
|
239
|
+
else {
|
240
|
+
// Class and instance variables that are mutable need to enforce invariance.
|
241
|
+
const primaryDecl = symbol.getDeclarations()[0];
|
242
|
+
const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
|
243
|
+
if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext,
|
244
|
+
/* srcTypeVarContext */ undefined, isInvariant ? assignTypeFlags | 1 /* EnforceInvariance */ : assignTypeFlags, recursionCount)) {
|
245
|
+
if (subDiag) {
|
246
|
+
if (isInvariant) {
|
247
|
+
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsInvariant().format({ name }));
|
267
248
|
}
|
249
|
+
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
268
250
|
}
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
251
|
+
typesAreConsistent = false;
|
252
|
+
}
|
253
|
+
}
|
254
|
+
const isDestFinal = symbol
|
255
|
+
.getTypedDeclarations()
|
256
|
+
.some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
|
257
|
+
const isSrcFinal = srcMemberInfo.symbol
|
258
|
+
.getTypedDeclarations()
|
259
|
+
.some((decl) => decl.type === 1 /* Variable */ && !!decl.isFinal);
|
260
|
+
if (isDestFinal !== isSrcFinal) {
|
261
|
+
if (isDestFinal) {
|
262
|
+
if (subDiag) {
|
263
|
+
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsFinalInProtocol().format({ name }));
|
274
264
|
}
|
275
265
|
}
|
266
|
+
else {
|
267
|
+
if (subDiag) {
|
268
|
+
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberIsNotFinalInProtocol().format({ name }));
|
269
|
+
}
|
270
|
+
}
|
271
|
+
typesAreConsistent = false;
|
276
272
|
}
|
277
273
|
});
|
278
274
|
});
|
@@ -280,86 +276,84 @@ function assignClassToProtocolInternal(evaluator, destType, srcType, diag, destT
|
|
280
276
|
if (typesAreConsistent && destType.details.typeParameters.length > 0) {
|
281
277
|
// Create a specialized version of the protocol defined by the dest and
|
282
278
|
// make sure the resulting type args can be assigned.
|
283
|
-
const
|
279
|
+
const genericProtocolType = types_1.ClassType.cloneForSpecialization(destType, undefined,
|
280
|
+
/* isTypeArgumentExplicit */ false);
|
281
|
+
const specializedProtocolType = (0, typeUtils_1.applySolvedTypeVars)(genericProtocolType, protocolTypeVarContext);
|
284
282
|
if (destType.typeArguments) {
|
285
|
-
if (!evaluator.verifyTypeArgumentsAssignable(destType,
|
283
|
+
if (!evaluator.verifyTypeArgumentsAssignable(destType, specializedProtocolType, diag, destTypeVarContext, srcTypeVarContext, flags, recursionCount)) {
|
286
284
|
typesAreConsistent = false;
|
287
285
|
}
|
288
286
|
}
|
289
|
-
else if (destTypeVarContext &&
|
290
|
-
destType.details.typeParameters
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
for (let i = 0; i < destType.details.typeParameters.length; i++) {
|
296
|
-
const typeArgType = i < srcTypeArgs.length ? srcTypeArgs[i] : types_1.UnknownType.create();
|
297
|
-
destTypeVarContext.setTypeVarType(destType.details.typeParameters[i],
|
298
|
-
/* narrowBound */ undefined,
|
299
|
-
/* narrowBoundNoLiterals */ undefined, typeArgType);
|
287
|
+
else if (destTypeVarContext && !destTypeVarContext.isLocked()) {
|
288
|
+
for (const typeParam of destType.details.typeParameters) {
|
289
|
+
const typeArgEntry = protocolTypeVarContext.getPrimarySignature().getTypeVar(typeParam);
|
290
|
+
if (typeArgEntry) {
|
291
|
+
destTypeVarContext.setTypeVarType(typeParam, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.narrowBound, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.narrowBoundNoLiterals, typeArgEntry === null || typeArgEntry === void 0 ? void 0 : typeArgEntry.wideBound);
|
292
|
+
}
|
300
293
|
}
|
301
294
|
}
|
302
295
|
}
|
303
296
|
return typesAreConsistent;
|
304
297
|
}
|
305
|
-
function assignModuleToProtocol(evaluator, destType, srcType, diag,
|
298
|
+
function assignModuleToProtocol(evaluator, destType, srcType, diag, destTypeVarContext, flags, recursionCount) {
|
306
299
|
if (recursionCount > types_1.maxTypeRecursionCount) {
|
307
300
|
return true;
|
308
301
|
}
|
309
302
|
recursionCount++;
|
310
303
|
let typesAreConsistent = true;
|
311
304
|
const checkedSymbolSet = new Set();
|
312
|
-
|
313
|
-
const genericDestType = types_1.ClassType.cloneForSpecialization(destType, undefined, /* isTypeArgumentExplicit */ false);
|
314
|
-
const genericDestTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
|
305
|
+
const protocolTypeVarContext = createProtocolTypeVarContext(evaluator, destType, destTypeVarContext);
|
315
306
|
destType.details.mro.forEach((mroClass) => {
|
316
307
|
if (!(0, types_1.isInstantiableClass)(mroClass) || !types_1.ClassType.isProtocolClass(mroClass)) {
|
317
308
|
return;
|
318
309
|
}
|
319
310
|
mroClass.details.fields.forEach((symbol, name) => {
|
320
311
|
var _a;
|
321
|
-
if (symbol.isClassMember()
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
}
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), genericDestTypeVarContext,
|
346
|
-
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
347
|
-
if (subDiag) {
|
348
|
-
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
349
|
-
}
|
350
|
-
typesAreConsistent = false;
|
351
|
-
}
|
312
|
+
if (!symbol.isClassMember() || symbol.isIgnoredForProtocolMatch() || checkedSymbolSet.has(name)) {
|
313
|
+
return;
|
314
|
+
}
|
315
|
+
// Note that we've already checked this symbol. It doesn't need to
|
316
|
+
// be checked again even if it is declared by a subclass.
|
317
|
+
checkedSymbolSet.add(name);
|
318
|
+
const memberSymbol = srcType.fields.get(name);
|
319
|
+
if (!memberSymbol) {
|
320
|
+
diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.Localizer.DiagnosticAddendum.protocolMemberMissing().format({ name }));
|
321
|
+
typesAreConsistent = false;
|
322
|
+
return;
|
323
|
+
}
|
324
|
+
let destMemberType = (_a = evaluator.getDeclaredTypeOfSymbol(symbol)) === null || _a === void 0 ? void 0 : _a.type;
|
325
|
+
if (!destMemberType) {
|
326
|
+
return;
|
327
|
+
}
|
328
|
+
destMemberType = (0, typeUtils_1.partiallySpecializeType)(destMemberType, destType);
|
329
|
+
const srcMemberType = evaluator.getEffectiveTypeOfSymbol(memberSymbol);
|
330
|
+
if ((0, types_1.isFunction)(srcMemberType) || (0, types_1.isOverloadedFunction)(srcMemberType)) {
|
331
|
+
if ((0, types_1.isFunction)(destMemberType) || (0, types_1.isOverloadedFunction)(destMemberType)) {
|
332
|
+
const boundDeclaredType = evaluator.bindFunctionToClassOrObject(types_1.ClassType.cloneAsInstance(destType), destMemberType, destType,
|
333
|
+
/* errorNode */ undefined, recursionCount);
|
334
|
+
if (boundDeclaredType) {
|
335
|
+
destMemberType = boundDeclaredType;
|
352
336
|
}
|
353
337
|
}
|
354
338
|
}
|
339
|
+
const subDiag = diag === null || diag === void 0 ? void 0 : diag.createAddendum();
|
340
|
+
if (!evaluator.assignType(destMemberType, srcMemberType, subDiag === null || subDiag === void 0 ? void 0 : subDiag.createAddendum(), protocolTypeVarContext,
|
341
|
+
/* srcTypeVarContext */ undefined, 0 /* Default */, recursionCount)) {
|
342
|
+
if (subDiag) {
|
343
|
+
subDiag.addMessage(localize_1.Localizer.DiagnosticAddendum.memberTypeMismatch().format({ name }));
|
344
|
+
}
|
345
|
+
typesAreConsistent = false;
|
346
|
+
}
|
355
347
|
});
|
356
348
|
});
|
357
349
|
// If the dest protocol has type parameters, make sure the source type arguments match.
|
358
350
|
if (typesAreConsistent && destType.details.typeParameters.length > 0 && destType.typeArguments) {
|
359
351
|
// Create a specialized version of the protocol defined by the dest and
|
360
352
|
// make sure the resulting type args can be assigned.
|
361
|
-
const
|
362
|
-
|
353
|
+
const genericProtocolType = types_1.ClassType.cloneForSpecialization(destType, undefined,
|
354
|
+
/* isTypeArgumentExplicit */ false);
|
355
|
+
const specializedProtocolType = (0, typeUtils_1.applySolvedTypeVars)(genericProtocolType, protocolTypeVarContext);
|
356
|
+
if (!evaluator.verifyTypeArgumentsAssignable(destType, specializedProtocolType, diag, destTypeVarContext,
|
363
357
|
/* srcTypeVarContext */ undefined, flags, recursionCount)) {
|
364
358
|
typesAreConsistent = false;
|
365
359
|
}
|
@@ -367,4 +361,30 @@ function assignModuleToProtocol(evaluator, destType, srcType, diag, typeVarConte
|
|
367
361
|
return typesAreConsistent;
|
368
362
|
}
|
369
363
|
exports.assignModuleToProtocol = assignModuleToProtocol;
|
364
|
+
function createProtocolTypeVarContext(evaluator, destType, destTypeVarContext) {
|
365
|
+
const protocolTypeVarContext = new typeVarContext_1.TypeVarContext((0, typeUtils_1.getTypeVarScopeId)(destType));
|
366
|
+
if (destType === null || destType === void 0 ? void 0 : destType.typeArguments) {
|
367
|
+
// Infer the type parameter variance because we need it below.
|
368
|
+
evaluator.inferTypeParameterVarianceForClass(destType);
|
369
|
+
let specializedDestType = destType;
|
370
|
+
if (destTypeVarContext) {
|
371
|
+
specializedDestType = (0, typeUtils_1.applySolvedTypeVars)(destType, destTypeVarContext, {
|
372
|
+
useNarrowBoundOnly: true,
|
373
|
+
});
|
374
|
+
}
|
375
|
+
// Populate the typeVarContext with any concrete constraints that
|
376
|
+
// have already been solved.
|
377
|
+
destType.details.typeParameters.forEach((typeParam, index) => {
|
378
|
+
if (index < specializedDestType.typeArguments.length) {
|
379
|
+
const typeArg = specializedDestType.typeArguments[index];
|
380
|
+
if (!(0, typeUtils_1.requiresSpecialization)(typeArg)) {
|
381
|
+
const typeParamVariance = types_1.TypeVarType.getVariance(typeParam);
|
382
|
+
protocolTypeVarContext.setTypeVarType(typeParam, typeParamVariance !== 4 /* Contravariant */ ? typeArg : undefined,
|
383
|
+
/* narrowBoundNoLiterals */ undefined, typeParamVariance !== 3 /* Covariant */ ? typeArg : undefined);
|
384
|
+
}
|
385
|
+
}
|
386
|
+
});
|
387
|
+
}
|
388
|
+
return protocolTypeVarContext;
|
389
|
+
}
|
370
390
|
//# sourceMappingURL=protocols.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/analyzer/protocols.ts"],"names":[],"mappings":"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"}
|
@@ -6,7 +6,7 @@ import { ConfigOptions } from '../common/configOptions';
|
|
6
6
|
import { ConsoleInterface } from '../common/console';
|
7
7
|
import { Diagnostic } from '../common/diagnostic';
|
8
8
|
import { FileEditAction } from '../common/editAction';
|
9
|
-
import {
|
9
|
+
import { EditableProgram, ProgramView } from '../common/extensibility';
|
10
10
|
import { FileSystem } from '../common/fileSystem';
|
11
11
|
import { Host, HostFactory } from '../common/host';
|
12
12
|
import { Range } from '../common/textRange';
|
@@ -64,7 +64,7 @@ export declare class AnalyzerService {
|
|
64
64
|
get test_program(): Program;
|
65
65
|
get id(): string;
|
66
66
|
clone(instanceName: string, serviceId: string, backgroundAnalysis?: BackgroundAnalysisBase, fs?: FileSystem): AnalyzerService;
|
67
|
-
runEditMode(callback: (
|
67
|
+
runEditMode(callback: (e: EditableProgram) => void, token: CancellationToken): FileEditAction[];
|
68
68
|
dispose(): void;
|
69
69
|
static createImportResolver(fs: FileSystem, options: ConfigOptions, host: Host): ImportResolver;
|
70
70
|
setCompletionCallback(callback: AnalysisCompleteCallback | undefined): void;
|