@zzzen/pyright-internal 1.2.0-dev.20240331 → 1.2.0-dev.20240407
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/analyzerFileInfo.d.ts +0 -1
- package/dist/analyzer/analyzerFileInfo.js.map +1 -1
- package/dist/analyzer/binder.js +11 -7
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/cacheManager.d.ts +11 -0
- package/dist/analyzer/cacheManager.js +59 -2
- package/dist/analyzer/cacheManager.js.map +1 -1
- package/dist/analyzer/checker.d.ts +2 -2
- package/dist/analyzer/checker.js +8 -8
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +14 -2
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.d.ts +1 -0
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +20 -3
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +2 -2
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/dataClasses.js +5 -6
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/enums.js +7 -3
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js +1 -1
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importStatementUtils.d.ts +6 -6
- package/dist/analyzer/importStatementUtils.js +42 -42
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +1 -1
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +6 -6
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +6 -5
- package/dist/analyzer/parseTreeUtils.js +12 -13
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +1 -1
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +4 -3
- package/dist/analyzer/program.js +21 -12
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +10 -10
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +5 -5
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -2
- package/dist/analyzer/service.js +7 -4
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +5 -3
- package/dist/analyzer/sourceFile.js +108 -71
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.js +1 -1
- package/dist/analyzer/sourceMapper.js +6 -6
- package/dist/analyzer/symbol.d.ts +4 -1
- package/dist/analyzer/symbol.js +10 -0
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/symbolUtils.d.ts +1 -0
- package/dist/analyzer/symbolUtils.js +11 -1
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +1 -1
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +106 -49
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeGuards.js +2 -2
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +1 -1
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +13 -16
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +29 -20
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +5 -1
- package/dist/analyzer/types.js +20 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysis.d.ts +1 -0
- package/dist/backgroundAnalysis.js +5 -1
- package/dist/backgroundAnalysis.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +2 -1
- package/dist/backgroundAnalysisBase.js +5 -0
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +1 -0
- package/dist/backgroundThreadBase.js +5 -1
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +4 -4
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/extensibility.d.ts +3 -2
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/serviceProviderExtensions.d.ts +2 -0
- package/dist/common/serviceProviderExtensions.js +4 -0
- package/dist/common/serviceProviderExtensions.js.map +1 -1
- package/dist/common/textEditTracker.d.ts +5 -5
- package/dist/common/textEditTracker.js +33 -33
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/workspaceEditUtils.js +2 -2
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +4 -4
- package/dist/languageServerBase.js +1 -1
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +3 -3
- package/dist/languageService/autoImporter.js +2 -1
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +2 -2
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +2 -2
- package/dist/languageService/completionProvider.js +8 -9
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.js +1 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentHighlightProvider.js +2 -2
- package/dist/languageService/documentHighlightProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +1 -1
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +1 -1
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.js +2 -2
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.d.ts +2 -2
- package/dist/languageService/importSorter.js +1 -1
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/referencesProvider.d.ts +4 -4
- package/dist/languageService/referencesProvider.js +2 -2
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +2 -2
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.d.ts +2 -2
- package/dist/languageService/symbolIndexer.js +1 -1
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js +1 -1
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +3 -0
- package/dist/localization/localize.js +1 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +1 -0
- package/dist/nodeMain.d.ts +1 -1
- package/dist/nodeMain.js +2 -2
- package/dist/nodeMain.js.map +1 -1
- package/dist/parser/parser.d.ts +7 -4
- package/dist/parser/parser.js +7 -5
- package/dist/parser/parser.js.map +1 -1
- package/dist/server.d.ts +3 -3
- package/dist/server.js +3 -3
- package/dist/server.js.map +1 -1
- package/dist/tests/cacheManager.test.js +35 -0
- package/dist/tests/cacheManager.test.js.map +1 -1
- package/dist/tests/chainedSourceFiles.test.js +7 -7
- package/dist/tests/chainedSourceFiles.test.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +4 -4
- package/dist/tests/harness/fourslash/testState.js +6 -5
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +4 -4
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/ipythonMode.test.js +1 -1
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/lsp/languageServer.js +1 -1
- package/dist/tests/lsp/languageServer.js.map +1 -1
- package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -1
- package/dist/tests/parser.test.js +14 -14
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/signatureHelp.test.js +1 -1
- package/dist/tests/signatureHelp.test.js.map +1 -1
- package/dist/tests/testStateUtils.js +5 -3
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/testUtils.d.ts +4 -8
- package/dist/tests/testUtils.js +4 -7
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/textEditUtil.test.js +3 -3
- package/dist/tests/textEditUtil.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +10 -4
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/package.json +1 -1
@@ -13,7 +13,8 @@ export declare const enum SymbolFlags {
|
|
13
13
|
PrivatePyTypedImport = 512,
|
14
14
|
InitVar = 1024,
|
15
15
|
NamedTupleMember = 2048,
|
16
|
-
IgnoredForOverrideChecks = 4096
|
16
|
+
IgnoredForOverrideChecks = 4096,
|
17
|
+
FinalVarInClassBody = 8192
|
17
18
|
}
|
18
19
|
export declare const indeterminateSymbolId = 0;
|
19
20
|
export declare class Symbol {
|
@@ -34,6 +35,8 @@ export declare class Symbol {
|
|
34
35
|
isInstanceMember(): boolean;
|
35
36
|
setIsClassVar(): void;
|
36
37
|
isClassVar(): boolean;
|
38
|
+
setIsFinalVarInClassBody(): void;
|
39
|
+
isFinalVarInClassBody(): boolean;
|
37
40
|
setIsInitVar(): void;
|
38
41
|
isInitVar(): boolean;
|
39
42
|
setIsInDunderAll(): void;
|
package/dist/analyzer/symbol.js
CHANGED
@@ -48,6 +48,10 @@ var SymbolFlags;
|
|
48
48
|
SymbolFlags[SymbolFlags["NamedTupleMember"] = 2048] = "NamedTupleMember";
|
49
49
|
// Indicates that the symbol should be exempt from override type checks.
|
50
50
|
SymbolFlags[SymbolFlags["IgnoredForOverrideChecks"] = 4096] = "IgnoredForOverrideChecks";
|
51
|
+
// Indicates that the symbol is marked Final and is assigned a value
|
52
|
+
// in the class body. The typing spec indicates that these should be
|
53
|
+
// considered ClassVars unless they are found in a dataclass.
|
54
|
+
SymbolFlags[SymbolFlags["FinalVarInClassBody"] = 8192] = "FinalVarInClassBody";
|
51
55
|
})(SymbolFlags || (exports.SymbolFlags = SymbolFlags = {}));
|
52
56
|
let nextSymbolId = 1;
|
53
57
|
function getUniqueSymbolId() {
|
@@ -98,6 +102,12 @@ class Symbol {
|
|
98
102
|
isClassVar() {
|
99
103
|
return !!(this._flags & 128 /* SymbolFlags.ClassVar */);
|
100
104
|
}
|
105
|
+
setIsFinalVarInClassBody() {
|
106
|
+
this._flags |= 8192 /* SymbolFlags.FinalVarInClassBody */;
|
107
|
+
}
|
108
|
+
isFinalVarInClassBody() {
|
109
|
+
return !!(this._flags & 8192 /* SymbolFlags.FinalVarInClassBody */);
|
110
|
+
}
|
101
111
|
setIsInitVar() {
|
102
112
|
this._flags |= 1024 /* SymbolFlags.InitVar */;
|
103
113
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbol.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAGH,yDAAgF;AAGhF,IAAkB,
|
1
|
+
{"version":3,"file":"symbol.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbol.ts"],"names":[],"mappings":"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"}
|
@@ -3,3 +3,4 @@ import { Symbol } from './symbol';
|
|
3
3
|
export declare function getLastTypedDeclaredForSymbol(symbol: Symbol): Declaration | undefined;
|
4
4
|
export declare function isTypedDictMemberAccessedThroughIndex(symbol: Symbol): boolean;
|
5
5
|
export declare function isVisibleExternally(symbol: Symbol): boolean;
|
6
|
+
export declare function isEffectivelyClassVar(symbol: Symbol, isInDataclass: boolean): boolean;
|
@@ -8,7 +8,7 @@
|
|
8
8
|
* Functions that operate on Symbol objects.
|
9
9
|
*/
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
11
|
-
exports.isVisibleExternally = exports.isTypedDictMemberAccessedThroughIndex = exports.getLastTypedDeclaredForSymbol = void 0;
|
11
|
+
exports.isEffectivelyClassVar = exports.isVisibleExternally = exports.isTypedDictMemberAccessedThroughIndex = exports.getLastTypedDeclaredForSymbol = void 0;
|
12
12
|
function getLastTypedDeclaredForSymbol(symbol) {
|
13
13
|
const typedDecls = symbol.getTypedDeclarations();
|
14
14
|
if (typedDecls.length > 0) {
|
@@ -34,4 +34,14 @@ function isVisibleExternally(symbol) {
|
|
34
34
|
return !symbol.isExternallyHidden() && !symbol.isPrivatePyTypedImport();
|
35
35
|
}
|
36
36
|
exports.isVisibleExternally = isVisibleExternally;
|
37
|
+
function isEffectivelyClassVar(symbol, isInDataclass) {
|
38
|
+
if (symbol.isClassVar()) {
|
39
|
+
return true;
|
40
|
+
}
|
41
|
+
if (symbol.isFinalVarInClassBody()) {
|
42
|
+
return !isInDataclass;
|
43
|
+
}
|
44
|
+
return false;
|
45
|
+
}
|
46
|
+
exports.isEffectivelyClassVar = isEffectivelyClassVar;
|
37
47
|
//# sourceMappingURL=symbolUtils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"symbolUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbolUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAKH,SAAgB,6BAA6B,CAAC,MAAc;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC5C;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AARD,sEAQC;AAED,mEAAmE;AACnE,0EAA0E;AAC1E,SAAgB,qCAAqC,CAAC,MAAc;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,IAAI,qCAA6B,EAAE;YAC5C,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAXD,sFAWC;AAED,SAAgB,mBAAmB,CAAC,MAAc;IAC9C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC5E,CAAC;AAFD,kDAEC"}
|
1
|
+
{"version":3,"file":"symbolUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/symbolUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAKH,SAAgB,6BAA6B,CAAC,MAAc;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC5C;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AARD,sEAQC;AAED,mEAAmE;AACnE,0EAA0E;AAC1E,SAAgB,qCAAqC,CAAC,MAAc;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAEjD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,IAAI,qCAA6B,EAAE;YAC5C,OAAO,IAAI,CAAC;SACf;KACJ;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAXD,sFAWC;AAED,SAAgB,mBAAmB,CAAC,MAAc;IAC9C,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC5E,CAAC;AAFD,kDAEC;AAED,SAAgB,qBAAqB,CAAC,MAAc,EAAE,aAAsB;IACxE,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE;QACrB,OAAO,IAAI,CAAC;KACf;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,EAAE;QAChC,OAAO,CAAC,aAAa,CAAC;KACzB;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAVD,sDAUC"}
|
@@ -264,7 +264,7 @@ function _getPropertyDocStringInherited(decl, sourceMapper, evaluator, classType
|
|
264
264
|
if (!(0, types_1.isInstantiableClass)(mroClass)) {
|
265
265
|
continue;
|
266
266
|
}
|
267
|
-
const symbol =
|
267
|
+
const symbol = types_1.ClassType.getSymbolTable(mroClass).get(fieldName);
|
268
268
|
// Get both the setter and getter declarations
|
269
269
|
const decls = symbol === null || symbol === void 0 ? void 0 : symbol.getDeclarations();
|
270
270
|
if (decls) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"typeDocStringUtils.js","sourceRoot":"","sources":["../../../../../src/analyzer/typeDocStringUtils.ts"],"names":[],"mappings":"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"}
|
@@ -2282,7 +2282,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
2282
2282
|
// Assignments to instance or class variables through "self" or "cls" is not
|
2283
2283
|
// allowed for protocol classes unless it is also declared within the class.
|
2284
2284
|
if (types_1.ClassType.isProtocolClass(classTypeResults.classType)) {
|
2285
|
-
const memberSymbol = classTypeResults.classType.
|
2285
|
+
const memberSymbol = types_1.ClassType.getSymbolTable(classTypeResults.classType).get(target.memberName.value);
|
2286
2286
|
if (memberSymbol) {
|
2287
2287
|
const classLevelDecls = memberSymbol.getDeclarations().filter((decl) => {
|
2288
2288
|
return !ParseTreeUtils.getEnclosingFunction(decl.node);
|
@@ -2323,7 +2323,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
2323
2323
|
const classTypeInfo = getTypeOfClass(classDef);
|
2324
2324
|
if (classTypeInfo && (0, types_1.isInstantiableClass)(classTypeInfo.classType)) {
|
2325
2325
|
let memberInfo = (0, typeUtils_1.lookUpClassMember)(classTypeInfo.classType, memberName, isInstanceMember ? 0 /* MemberAccessFlags.Default */ : 16 /* MemberAccessFlags.SkipInstanceMembers */);
|
2326
|
-
const memberFields = classTypeInfo.classType
|
2326
|
+
const memberFields = types_1.ClassType.getSymbolTable(classTypeInfo.classType);
|
2327
2327
|
if (memberInfo) {
|
2328
2328
|
// Are we accessing an existing member on this class, or is
|
2329
2329
|
// it a member on a parent class?
|
@@ -2331,12 +2331,13 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
2331
2331
|
const isThisClass = memberClass && types_1.ClassType.isSameGenericClass(classTypeInfo.classType, memberClass);
|
2332
2332
|
// Check for an attempt to write to an instance variable that is
|
2333
2333
|
// not defined by __slots__.
|
2334
|
-
if (isThisClass && isInstanceMember) {
|
2335
|
-
|
2334
|
+
if (isThisClass && isInstanceMember && memberClass) {
|
2335
|
+
const inheritedSlotsNames = types_1.ClassType.getInheritedSlotsNames(memberClass);
|
2336
|
+
if (inheritedSlotsNames && memberClass.details.localSlotsNames) {
|
2336
2337
|
// Skip this check if the local slots is specified but empty because this pattern
|
2337
2338
|
// is used in a legitimate manner for mix-in classes.
|
2338
2339
|
if (memberClass.details.localSlotsNames.length > 0 &&
|
2339
|
-
!
|
2340
|
+
!inheritedSlotsNames.some((name) => name === memberName)) {
|
2340
2341
|
// Determine whether the assignment corresponds to a descriptor
|
2341
2342
|
// that was assigned as a class variable. If so, then slots will not
|
2342
2343
|
// apply in this case.
|
@@ -3771,6 +3772,16 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3771
3772
|
if (usage.setExpectedTypeDiag) {
|
3772
3773
|
diag = usage.setExpectedTypeDiag;
|
3773
3774
|
}
|
3775
|
+
// If the class is a TypedDict, and there's a key with the same name,
|
3776
|
+
// suggest that they user want to use ["key"] name instead.
|
3777
|
+
if ((0, types_1.isClass)(baseType) && baseType.details.typedDictEntries) {
|
3778
|
+
const tdKey = baseType.details.typedDictEntries.knownItems.get(memberName);
|
3779
|
+
if (tdKey) {
|
3780
|
+
const subDiag = new diagnostic_1.DiagnosticAddendum();
|
3781
|
+
subDiag.addMessage(localize_1.LocAddendum.typedDictKeyAccess().format({ name: memberName }));
|
3782
|
+
diag.addAddendum(subDiag);
|
3783
|
+
}
|
3784
|
+
}
|
3774
3785
|
const rule = isFunctionRule
|
3775
3786
|
? diagnosticRules_1.DiagnosticRule.reportFunctionMemberAccess
|
3776
3787
|
: diagnosticRules_1.DiagnosticRule.reportAttributeAccessIssue;
|
@@ -3842,7 +3853,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3842
3853
|
// this is normally considered a type violation. But it is allowed
|
3843
3854
|
// if the class variable is a descriptor object. In this case, we will
|
3844
3855
|
// clear the flag that causes an error to be generated.
|
3845
|
-
if (usage.method === 'set' &&
|
3856
|
+
if (usage.method === 'set' &&
|
3857
|
+
(0, symbolUtils_1.isEffectivelyClassVar)(memberInfo.symbol, types_1.ClassType.isDataClass(containingClassType)) &&
|
3858
|
+
isAccessedThroughObject) {
|
3846
3859
|
const selfClass = (selfType !== null && selfType !== void 0 ? selfType : memberName === '__new__') ? undefined : classType;
|
3847
3860
|
const typeResult = getTypeOfMemberInternal(errorNode, memberInfo, selfClass, flags);
|
3848
3861
|
if (typeResult) {
|
@@ -3942,7 +3955,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
3942
3955
|
}
|
3943
3956
|
// Check for an attempt to overwrite or delete a ClassVar member from an instance.
|
3944
3957
|
if (!isDescriptorApplied &&
|
3945
|
-
|
3958
|
+
memberInfo &&
|
3959
|
+
(0, symbolUtils_1.isEffectivelyClassVar)(memberInfo.symbol, types_1.ClassType.isDataClass(classType)) &&
|
3946
3960
|
(flags & 128 /* MemberAccessFlags.DisallowClassVarWrites */) !== 0) {
|
3947
3961
|
diag === null || diag === void 0 ? void 0 : diag.addMessage(localize_1.LocAddendum.memberSetClassVar().format({ name: memberName }));
|
3948
3962
|
isDescriptorError = true;
|
@@ -6620,7 +6634,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
6620
6634
|
// are more complicated and depend on whether the method is defined in a stub file.
|
6621
6635
|
function getAbstractSymbolInfo(classType, symbolName) {
|
6622
6636
|
const isProtocolClass = types_1.ClassType.isProtocolClass(classType);
|
6623
|
-
const symbol =
|
6637
|
+
const symbol = types_1.ClassType.getSymbolTable(classType).get(symbolName);
|
6624
6638
|
if (!symbol) {
|
6625
6639
|
return undefined;
|
6626
6640
|
}
|
@@ -9109,7 +9123,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
9109
9123
|
hasDeclaredType: true,
|
9110
9124
|
});
|
9111
9125
|
initType.details.declaredReturnType = getNoneType();
|
9112
|
-
|
9126
|
+
types_1.ClassType.getSymbolTable(classType).set('__init__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, initType));
|
9113
9127
|
// Synthesize a trivial __new__ method.
|
9114
9128
|
const newType = types_1.FunctionType.createSynthesizedInstance('__new__', 1 /* FunctionTypeFlags.ConstructorMethod */);
|
9115
9129
|
types_1.FunctionType.addParameter(newType, {
|
@@ -9121,7 +9135,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
9121
9135
|
types_1.FunctionType.addDefaultParameters(newType);
|
9122
9136
|
newType.details.declaredReturnType = types_1.ClassType.cloneAsInstance(classType);
|
9123
9137
|
newType.details.constructorTypeVarScopeId = classType.details.typeVarScopeId;
|
9124
|
-
|
9138
|
+
types_1.ClassType.getSymbolTable(classType).set('__new__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, newType));
|
9125
9139
|
}
|
9126
9140
|
return classType;
|
9127
9141
|
}
|
@@ -9701,7 +9715,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
9701
9715
|
return undefined;
|
9702
9716
|
}
|
9703
9717
|
const specializedListOrSet = (0, typeUtils_1.applySolvedTypeVars)(expectedClassType, typeVarContext);
|
9704
|
-
if (!specializedListOrSet.typeArguments
|
9718
|
+
if (!specializedListOrSet.typeArguments) {
|
9705
9719
|
return undefined;
|
9706
9720
|
}
|
9707
9721
|
return specializedListOrSet.typeArguments[0];
|
@@ -10051,7 +10065,8 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
10051
10065
|
if (ParseTreeUtils.containsAwaitNode(node.expression)) {
|
10052
10066
|
isAsync = true;
|
10053
10067
|
}
|
10054
|
-
const
|
10068
|
+
const builtInIteratorType = getTypingType(node, isAsync ? 'AsyncGenerator' : 'Generator');
|
10069
|
+
const expectedEntryType = getExpectedEntryTypeForIterable(node, builtInIteratorType, inferenceContext);
|
10055
10070
|
const elementTypeResult = getElementTypeFromListComprehension(node, expectedEntryType);
|
10056
10071
|
if (elementTypeResult.isIncomplete) {
|
10057
10072
|
isIncomplete = true;
|
@@ -10059,8 +10074,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
10059
10074
|
if (elementTypeResult.typeErrors) {
|
10060
10075
|
typeErrors = true;
|
10061
10076
|
}
|
10062
|
-
|
10063
|
-
|
10077
|
+
let elementType = elementTypeResult.type;
|
10078
|
+
if (!expectedEntryType || !(0, typeUtils_1.containsLiteralType)(expectedEntryType)) {
|
10079
|
+
elementType = stripLiteralValue(elementType);
|
10080
|
+
}
|
10064
10081
|
if (builtInIteratorType && (0, types_1.isInstantiableClass)(builtInIteratorType)) {
|
10065
10082
|
type = types_1.ClassType.cloneAsInstance(types_1.ClassType.cloneForSpecialization(builtInIteratorType, isAsync ? [elementType, getNoneType()] : [elementType, getNoneType(), getNoneType()],
|
10066
10083
|
/* isTypeArgumentExplicit */ true));
|
@@ -11054,6 +11071,14 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
11054
11071
|
if (aliasMapEntry.isSpecialForm) {
|
11055
11072
|
specialClassType.details.flags |= -2147483648 /* ClassTypeFlags.SpecialFormClass */;
|
11056
11073
|
}
|
11074
|
+
// Synthesize a single type parameter with the specified variance if
|
11075
|
+
// specified in the alias map entry.
|
11076
|
+
if (aliasMapEntry.typeParamVariance !== undefined) {
|
11077
|
+
let typeParam = types_1.TypeVarType.createInstance('T');
|
11078
|
+
typeParam = types_1.TypeVarType.cloneForScopeId(typeParam, ParseTreeUtils.getScopeIdForNode(node), assignedName, 0 /* TypeVarScopeType.Class */);
|
11079
|
+
typeParam.details.declaredVariance = aliasMapEntry.typeParamVariance;
|
11080
|
+
specialClassType.details.typeParameters.push(typeParam);
|
11081
|
+
}
|
11057
11082
|
const specialBuiltInClassDeclaration = ((_a = AnalyzerNodeInfo.getDeclaration(node)) !== null && _a !== void 0 ? _a : (node.parent ? AnalyzerNodeInfo.getDeclaration(node.parent) : undefined));
|
11058
11083
|
specialClassType.details.declaration = specialBuiltInClassDeclaration;
|
11059
11084
|
if (fileInfo.isTypingExtensionsStubFile) {
|
@@ -11124,7 +11149,10 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
11124
11149
|
['Annotated', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11125
11150
|
['TypeAlias', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11126
11151
|
['Concatenate', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11127
|
-
[
|
11152
|
+
[
|
11153
|
+
'TypeGuard',
|
11154
|
+
{ alias: '', module: 'builtins', isSpecialForm: true, typeParamVariance: 3 /* Variance.Covariant */ },
|
11155
|
+
],
|
11128
11156
|
['Unpack', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11129
11157
|
['Required', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11130
11158
|
['NotRequired', { alias: '', module: 'builtins', isSpecialForm: true }],
|
@@ -11133,7 +11161,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
11133
11161
|
['Never', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11134
11162
|
['LiteralString', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11135
11163
|
['ReadOnly', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11136
|
-
['TypeIs', { alias: '', module: 'builtins', isSpecialForm: true }],
|
11164
|
+
['TypeIs', { alias: '', module: 'builtins', isSpecialForm: true, typeParamVariance: 2 /* Variance.Invariant */ }],
|
11137
11165
|
]);
|
11138
11166
|
const aliasMapEntry = specialTypes.get(assignedName);
|
11139
11167
|
if (aliasMapEntry) {
|
@@ -11511,6 +11539,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
11511
11539
|
// all of the type parameters in the specified order.
|
11512
11540
|
let genericTypeParameters;
|
11513
11541
|
let protocolTypeParameters;
|
11542
|
+
let isNamedTupleSubclass = false;
|
11514
11543
|
const initSubclassArgs = [];
|
11515
11544
|
let metaclassNode;
|
11516
11545
|
let exprFlags = 128 /* EvaluatorFlags.ExpectingInstantiableType */ |
|
@@ -11590,6 +11619,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
11590
11619
|
// newer), it's considered a (read-only) dataclass.
|
11591
11620
|
if (fileInfo.executionEnvironment.pythonVersion.isGreaterOrEqualTo(pythonVersion_1.pythonVersion3_6)) {
|
11592
11621
|
if (types_1.ClassType.isBuiltIn(argType, 'NamedTuple')) {
|
11622
|
+
isNamedTupleSubclass = true;
|
11593
11623
|
classType.details.flags |=
|
11594
11624
|
4 /* ClassTypeFlags.DataClass */ |
|
11595
11625
|
32 /* ClassTypeFlags.SkipSynthesizedDataClassEq */ |
|
@@ -11948,46 +11978,62 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
11948
11978
|
// See if there's already a non-synthesized __init__ method.
|
11949
11979
|
// We shouldn't override it.
|
11950
11980
|
if (!skipSynthesizedInit) {
|
11951
|
-
const initSymbol =
|
11952
|
-
if (initSymbol) {
|
11981
|
+
const initSymbol = classType.details.fields.get('__init__');
|
11982
|
+
if (initSymbol && initSymbol.isClassMember()) {
|
11953
11983
|
hasExistingInitMethod = true;
|
11954
11984
|
}
|
11955
11985
|
}
|
11956
11986
|
let skipSynthesizeHash = false;
|
11957
|
-
const hashSymbol =
|
11987
|
+
const hashSymbol = classType.details.fields.get('__hash__');
|
11958
11988
|
// If there is a hash symbol defined in the class (i.e. one that we didn't
|
11959
11989
|
// synthesize above), then we shouldn't synthesize a new one for the dataclass.
|
11960
|
-
if (hashSymbol && !hashSymbol.
|
11990
|
+
if (hashSymbol && hashSymbol.isClassMember() && !hashSymbol.getSynthesizedType()) {
|
11961
11991
|
skipSynthesizeHash = true;
|
11962
11992
|
}
|
11963
|
-
(0, dataClasses_1.synthesizeDataClassMethods)(evaluatorInterface, node, classType, skipSynthesizedInit, hasExistingInitMethod, skipSynthesizeHash);
|
11993
|
+
const synthesizeMethods = () => (0, dataClasses_1.synthesizeDataClassMethods)(evaluatorInterface, node, classType, skipSynthesizedInit, hasExistingInitMethod, skipSynthesizeHash);
|
11994
|
+
// If this is a NamedTuple subclass, immediately synthesize dataclass methods
|
11995
|
+
// because we also need to update the MRO classes in this case. For regular
|
11996
|
+
// dataclasses, we'll defer the method synthesis to avoid circular dependencies.
|
11997
|
+
if (isNamedTupleSubclass) {
|
11998
|
+
synthesizeMethods();
|
11999
|
+
}
|
12000
|
+
else {
|
12001
|
+
classType.details.synthesizeMethodsDeferred = () => {
|
12002
|
+
delete classType.details.synthesizeMethodsDeferred;
|
12003
|
+
synthesizeMethods();
|
12004
|
+
};
|
12005
|
+
}
|
11964
12006
|
}
|
11965
12007
|
// Build a complete list of all slots names defined by the class hierarchy.
|
11966
12008
|
// This needs to be done after dataclass processing.
|
11967
|
-
|
11968
|
-
|
11969
|
-
|
11970
|
-
|
11971
|
-
|
11972
|
-
|
11973
|
-
|
11974
|
-
!types_1.ClassType.isBuiltIn(baseClass, '
|
11975
|
-
|
11976
|
-
|
11977
|
-
|
11978
|
-
|
11979
|
-
|
12009
|
+
classType.details.calculateInheritedSlotsNamesDeferred = () => {
|
12010
|
+
delete classType.details.calculateInheritedSlotsNamesDeferred;
|
12011
|
+
if (classType.details.localSlotsNames) {
|
12012
|
+
let isLimitedToSlots = true;
|
12013
|
+
const extendedSlotsNames = Array.from(classType.details.localSlotsNames);
|
12014
|
+
classType.details.baseClasses.forEach((baseClass) => {
|
12015
|
+
if ((0, types_1.isInstantiableClass)(baseClass)) {
|
12016
|
+
if (!types_1.ClassType.isBuiltIn(baseClass, 'object') &&
|
12017
|
+
!types_1.ClassType.isBuiltIn(baseClass, 'type') &&
|
12018
|
+
!types_1.ClassType.isBuiltIn(baseClass, 'Generic')) {
|
12019
|
+
const inheritedSlotsNames = types_1.ClassType.getInheritedSlotsNames(baseClass);
|
12020
|
+
if (inheritedSlotsNames) {
|
12021
|
+
(0, collectionUtils_1.appendArray)(extendedSlotsNames, inheritedSlotsNames);
|
12022
|
+
}
|
12023
|
+
else {
|
12024
|
+
isLimitedToSlots = false;
|
12025
|
+
}
|
11980
12026
|
}
|
11981
12027
|
}
|
12028
|
+
else {
|
12029
|
+
isLimitedToSlots = false;
|
12030
|
+
}
|
12031
|
+
});
|
12032
|
+
if (isLimitedToSlots) {
|
12033
|
+
classType.details.inheritedSlotsNamesCached = extendedSlotsNames;
|
11982
12034
|
}
|
11983
|
-
else {
|
11984
|
-
isLimitedToSlots = false;
|
11985
|
-
}
|
11986
|
-
});
|
11987
|
-
if (isLimitedToSlots) {
|
11988
|
-
classType.details.inheritedSlotsNames = extendedSlotsNames;
|
11989
12035
|
}
|
11990
|
-
}
|
12036
|
+
};
|
11991
12037
|
// Update the undecorated class type.
|
11992
12038
|
writeTypeCache(node.name, { type: classType }, 0 /* EvaluatorFlags.None */);
|
11993
12039
|
// Update the decorated class type.
|
@@ -12841,7 +12887,12 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
12841
12887
|
// of the child class.
|
12842
12888
|
if ((0, typeUtils_1.requiresSpecialization)(inferredParamType) && (0, types_1.isClass)(baseClassMemberInfo.classType)) {
|
12843
12889
|
const typeVarContext = (0, typeUtils_1.buildTypeVarContextFromSpecializedClass)(baseClassMemberInfo.classType);
|
12844
|
-
|
12890
|
+
// Add the scope of the method to handle any function-scoped TypeVars.
|
12891
|
+
typeVarContext.addSolveForScope(ParseTreeUtils.getScopeIdForNode(baseClassMethodNode));
|
12892
|
+
// Replace any unsolved TypeVars with Unknown (including all function-scoped TypeVars).
|
12893
|
+
inferredParamType = (0, typeUtils_1.applySolvedTypeVars)(inferredParamType, typeVarContext, {
|
12894
|
+
unknownIfNotFound: true,
|
12895
|
+
});
|
12845
12896
|
}
|
12846
12897
|
const fileInfo = AnalyzerNodeInfo.getFileInfo(functionNode);
|
12847
12898
|
if (fileInfo.isInPyTypedPackage && !fileInfo.isStubFile) {
|
@@ -15501,7 +15552,9 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
15501
15552
|
// If the symbol is explicitly marked as a ClassVar, consider only the
|
15502
15553
|
// declarations that assign to it from within the class body, not through
|
15503
15554
|
// a member access expression.
|
15504
|
-
if (
|
15555
|
+
if ((0, symbolUtils_1.isEffectivelyClassVar)(symbol, /* isDataclass */ false) &&
|
15556
|
+
decl.type === 1 /* DeclarationType.Variable */ &&
|
15557
|
+
decl.isDefinedByMemberAccess) {
|
15505
15558
|
return;
|
15506
15559
|
}
|
15507
15560
|
if (usageNode !== undefined) {
|
@@ -16152,7 +16205,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16152
16205
|
// Stash the current class type so any references to it are treated
|
16153
16206
|
// as though all TypeParameters are invariant.
|
16154
16207
|
assignClassToSelfStack.push({ class: destType, assumedVariance });
|
16155
|
-
|
16208
|
+
types_1.ClassType.getSymbolTable(destType).forEach((symbol, name) => {
|
16156
16209
|
if (!isAssignable || symbol.isIgnoredForProtocolMatch()) {
|
16157
16210
|
return;
|
16158
16211
|
}
|
@@ -16989,7 +17042,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
16989
17042
|
}
|
16990
17043
|
}
|
16991
17044
|
else if (types_1.ClassType.isBuiltIn(destType, ['TypeGuard', 'TypeIs'])) {
|
16992
|
-
//
|
17045
|
+
// Allow the source to be a "bool".
|
16993
17046
|
if ((originalFlags & 128 /* AssignTypeFlags.AllowBoolTypeGuard */) !== 0) {
|
16994
17047
|
if ((0, types_1.isClassInstance)(srcType) && types_1.ClassType.isBuiltIn(srcType, 'bool')) {
|
16995
17048
|
return true;
|
@@ -17601,11 +17654,11 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
17601
17654
|
// a normal function wouldn't be compatible with.
|
17602
17655
|
for (const mroClass of objType.details.mro) {
|
17603
17656
|
if ((0, types_1.isClass)(mroClass) && types_1.ClassType.isProtocolClass(mroClass)) {
|
17604
|
-
for (const field of
|
17657
|
+
for (const field of types_1.ClassType.getSymbolTable(mroClass)) {
|
17605
17658
|
if (field[0] !== '__call__' && !field[1].isIgnoredForProtocolMatch()) {
|
17606
17659
|
let fieldIsPartOfFunction = false;
|
17607
17660
|
if (functionObj && (0, types_1.isClass)(functionObj)) {
|
17608
|
-
if (
|
17661
|
+
if (types_1.ClassType.getSymbolTable(functionObj).has(field[0])) {
|
17609
17662
|
fieldIsPartOfFunction = true;
|
17610
17663
|
}
|
17611
17664
|
}
|
@@ -18820,7 +18873,7 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
18820
18873
|
// See if this class is introducing a new abstract symbol that has not been
|
18821
18874
|
// introduced previously or if it is overriding an abstract symbol with
|
18822
18875
|
// a non-abstract one.
|
18823
|
-
|
18876
|
+
types_1.ClassType.getSymbolTable(mroClass).forEach((symbol, symbolName) => {
|
18824
18877
|
const abstractSymbolInfo = getAbstractSymbolInfo(mroClass, symbolName);
|
18825
18878
|
if (abstractSymbolInfo) {
|
18826
18879
|
symbolTable.set(symbolName, abstractSymbolInfo);
|
@@ -19069,11 +19122,15 @@ function createTypeEvaluator(importLookup, evaluatorOptions) {
|
|
19069
19122
|
if (node.strings[0].nodeType === 49 /* ParseNodeType.String */) {
|
19070
19123
|
valueOffset += node.strings[0].token.prefixLength + node.strings[0].token.quoteMarkLength;
|
19071
19124
|
}
|
19125
|
+
// Construct a temporary dummy string with the text value at the appropriate
|
19126
|
+
// offset so as to mimic the original file. This will keep all of the token
|
19127
|
+
// and diagnostic offsets correct.
|
19128
|
+
const dummyFileContents = ' '.repeat(valueOffset) + textValue;
|
19072
19129
|
const parseOptions = new parser_1.ParseOptions();
|
19073
19130
|
parseOptions.isStubFile = fileInfo.isStubFile;
|
19074
19131
|
parseOptions.pythonVersion = fileInfo.executionEnvironment.pythonVersion;
|
19075
19132
|
parseOptions.reportErrorsForParsedStringContents = true;
|
19076
|
-
const parseResults = parser.parseTextExpression(
|
19133
|
+
const parseResults = parser.parseTextExpression(dummyFileContents, valueOffset, textValue.length, parseOptions,
|
19077
19134
|
/* parseTextMode */ undefined,
|
19078
19135
|
/* initialParenDepth */ undefined, fileInfo.typingSymbolAliases);
|
19079
19136
|
if (parseResults.parseTree && parseResults.parseTree.nodeType !== 62 /* ParseNodeType.FunctionAnnotation */) {
|