@zzzen/pyright-internal 1.2.0-dev.20230305 → 1.2.0-dev.20230312
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/binder.js +23 -3
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +3 -3
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/commentUtils.js +11 -1
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constructorTransform.d.ts +1 -0
- package/dist/analyzer/constructorTransform.js +19 -2
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +40 -40
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/patternMatching.js +13 -11
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +5 -4
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/sourceFile.js +12 -1
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +156 -42
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
- package/dist/analyzer/typePrinter.js +63 -55
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -0
- package/dist/analyzer/typeUtils.js +9 -3
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +2 -1
- package/dist/analyzer/typedDicts.js +57 -40
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +1 -0
- package/dist/analyzer/types.js +8 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +78 -0
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/extensibility.js +25 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/languageServerBase.js +3 -1
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +4 -2
- package/dist/languageService/completionProvider.js +206 -151
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/renameModuleProvider.d.ts +1 -1
- package/dist/languageService/renameModuleProvider.js +8 -1
- package/dist/languageService/renameModuleProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +2 -1
- package/dist/languageService/tooltipUtils.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/parser/parser.js +22 -7
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.js +1 -1
- package/dist/tests/completions.test.js +445 -0
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js +13 -3
- package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js +7 -2
- package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js.map +1 -1
- package/dist/tests/hoverProvider.test.js +1 -1
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/moveSymbol.misc.test.js +27 -0
- package/dist/tests/moveSymbol.misc.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +4 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +4 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/package.json +1 -1
@@ -37,7 +37,7 @@ function _applyStrictRules(ruleSet) {
|
|
37
37
|
_overrideRules(ruleSet, (0, configOptions_1.getStrictDiagnosticRuleSet)(), (0, configOptions_1.getStrictModeNotOverriddenRules)());
|
38
38
|
}
|
39
39
|
function _applyBasicRules(ruleSet) {
|
40
|
-
|
40
|
+
_overwriteRules(ruleSet, (0, configOptions_1.getBasicDiagnosticRuleSet)());
|
41
41
|
}
|
42
42
|
function _overrideRules(ruleSet, overrideRuleSet, skipRuleNames) {
|
43
43
|
const boolRuleNames = (0, configOptions_1.getBooleanDiagnosticRules)();
|
@@ -65,6 +65,16 @@ function _overrideRules(ruleSet, overrideRuleSet, skipRuleNames) {
|
|
65
65
|
}
|
66
66
|
}
|
67
67
|
}
|
68
|
+
function _overwriteRules(ruleSet, overrideRuleSet) {
|
69
|
+
const boolRuleNames = (0, configOptions_1.getBooleanDiagnosticRules)();
|
70
|
+
const diagRuleNames = (0, configOptions_1.getDiagLevelDiagnosticRules)();
|
71
|
+
for (const ruleName of boolRuleNames) {
|
72
|
+
ruleSet[ruleName] = overrideRuleSet[ruleName];
|
73
|
+
}
|
74
|
+
for (const ruleName of diagRuleNames) {
|
75
|
+
ruleSet[ruleName] = overrideRuleSet[ruleName];
|
76
|
+
}
|
77
|
+
}
|
68
78
|
function _parsePyrightComment(commentValue, commentRange, ruleSet, diagnostics) {
|
69
79
|
// Is this a pyright comment?
|
70
80
|
const commentPrefix = 'pyright:';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"commentUtils.js","sourceRoot":"","sources":["../../../src/analyzer/commentUtils.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,2DASiC;AACjC,2CAAyC;AAIzC,uDAAqD;AAGrD,MAAM,aAAa,GAAG,QAAQ,CAAC;AAC/B,MAAM,YAAY,GAAG,OAAO,CAAC;AAO7B,SAAgB,sBAAsB,CAClC,MAAkC,EAClC,cAAiC,EACjC,SAAkB,EAClB,WAAgC;IAEhC,IAAI,OAAO,GAAG,IAAA,sCAAsB,EAAC,cAAc,CAAC,CAAC;IAErD,IAAI,SAAS,EAAE;QACX,iBAAiB,CAAC,OAAO,CAAC,CAAC;KAC9B;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,QAAQ,EAAE;YAChB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClC,MAAM,SAAS,GAAc,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC9E,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAE3D,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;aAC1E;SACJ;KACJ;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAzBD,wDAyBC;AAED,SAAS,iBAAiB,CAAC,OAA0B;IACjD,cAAc,CAAC,OAAO,EAAE,IAAA,0CAA0B,GAAE,EAAE,IAAA,+CAA+B,GAAE,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,gBAAgB,CAAC,OAA0B;IAChD,
|
1
|
+
{"version":3,"file":"commentUtils.js","sourceRoot":"","sources":["../../../src/analyzer/commentUtils.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ExpressionNode } from '../parser/parseNodes';
|
2
2
|
import { FunctionArgument, FunctionResult, TypeEvaluator } from './typeEvaluatorTypes';
|
3
3
|
import { ClassType } from './types';
|
4
|
+
export declare function hasConstructorTransform(classType: ClassType): boolean;
|
4
5
|
export declare function applyConstructorTransform(evaluator: TypeEvaluator, errorNode: ExpressionNode, argList: FunctionArgument[], classType: ClassType, result: FunctionResult): FunctionResult;
|
@@ -11,7 +11,7 @@
|
|
11
11
|
*
|
12
12
|
*/
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
-
exports.applyConstructorTransform = void 0;
|
14
|
+
exports.applyConstructorTransform = exports.hasConstructorTransform = void 0;
|
15
15
|
const diagnostic_1 = require("../common/diagnostic");
|
16
16
|
const diagnosticRules_1 = require("../common/diagnosticRules");
|
17
17
|
const localize_1 = require("../localization/localize");
|
@@ -20,6 +20,13 @@ const symbol_1 = require("./symbol");
|
|
20
20
|
const types_1 = require("./types");
|
21
21
|
const typeUtils_1 = require("./typeUtils");
|
22
22
|
const typeVarContext_1 = require("./typeVarContext");
|
23
|
+
function hasConstructorTransform(classType) {
|
24
|
+
if (classType.details.fullName === 'functools.partial') {
|
25
|
+
return true;
|
26
|
+
}
|
27
|
+
return false;
|
28
|
+
}
|
29
|
+
exports.hasConstructorTransform = hasConstructorTransform;
|
23
30
|
function applyConstructorTransform(evaluator, errorNode, argList, classType, result) {
|
24
31
|
if (classType.details.fullName === 'functools.partial') {
|
25
32
|
return applyPartialTransform(evaluator, errorNode, argList, result);
|
@@ -68,7 +75,9 @@ function applyPartialTransform(evaluator, errorNode, argList, result) {
|
|
68
75
|
const remainingArgsList = argList.slice(1);
|
69
76
|
remainingArgsList.forEach((arg, argIndex) => {
|
70
77
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
71
|
-
|
78
|
+
if (!arg.valueExpression) {
|
79
|
+
return;
|
80
|
+
}
|
72
81
|
// Is it a positional argument or a keyword argument?
|
73
82
|
if (!arg.name) {
|
74
83
|
// Does this positional argument map to a positional parameter?
|
@@ -77,6 +86,8 @@ function applyPartialTransform(evaluator, errorNode, argList, result) {
|
|
77
86
|
if (paramListDetails.argsIndex !== undefined) {
|
78
87
|
const paramType = types_1.FunctionType.getEffectiveParameterType(origFunctionType, paramListDetails.params[paramListDetails.argsIndex].index);
|
79
88
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
89
|
+
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
90
|
+
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
80
91
|
if (!evaluator.assignType(paramType, argTypeResult.type, diag, typeVarContext)) {
|
81
92
|
evaluator.addDiagnostic((0, analyzerNodeInfo_1.getFileInfo)(errorNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.argAssignmentParamFunction().format({
|
82
93
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -104,6 +115,8 @@ function applyPartialTransform(evaluator, errorNode, argList, result) {
|
|
104
115
|
const paramType = types_1.FunctionType.getEffectiveParameterType(origFunctionType, argIndex);
|
105
116
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
106
117
|
const paramName = (_d = paramListDetails.params[argIndex].param.name) !== null && _d !== void 0 ? _d : '';
|
118
|
+
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
119
|
+
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
107
120
|
if (!evaluator.assignType(paramType, argTypeResult.type, diag, typeVarContext)) {
|
108
121
|
evaluator.addDiagnostic((0, analyzerNodeInfo_1.getFileInfo)(errorNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.argAssignmentParamFunction().format({
|
109
122
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -128,6 +141,8 @@ function applyPartialTransform(evaluator, errorNode, argList, result) {
|
|
128
141
|
else {
|
129
142
|
const paramType = types_1.FunctionType.getEffectiveParameterType(origFunctionType, paramListDetails.params[paramListDetails.kwargsIndex].index);
|
130
143
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
144
|
+
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
145
|
+
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
131
146
|
if (!evaluator.assignType(paramType, argTypeResult.type, diag, typeVarContext)) {
|
132
147
|
evaluator.addDiagnostic((0, analyzerNodeInfo_1.getFileInfo)(errorNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.argAssignmentParamFunction().format({
|
133
148
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -148,6 +163,8 @@ function applyPartialTransform(evaluator, errorNode, argList, result) {
|
|
148
163
|
}
|
149
164
|
else {
|
150
165
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
166
|
+
const argTypeResult = evaluator.getTypeOfExpression(arg.valueExpression,
|
167
|
+
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(paramType));
|
151
168
|
if (!evaluator.assignType(paramType, argTypeResult.type, diag, typeVarContext)) {
|
152
169
|
evaluator.addDiagnostic((0, analyzerNodeInfo_1.getFileInfo)(errorNode).diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.argAssignmentParamFunction().format({
|
153
170
|
argType: evaluator.printType(argTypeResult.type),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constructorTransform.js","sourceRoot":"","sources":["../../../src/analyzer/constructorTransform.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,qDAA0D;AAC1D,+DAA2D;AAC3D,uDAAqD;AAErD,yDAAiD;AACjD,qCAA+C;AAE/C,mCAA8G;AAC9G,
|
1
|
+
{"version":3,"file":"constructorTransform.js","sourceRoot":"","sources":["../../../src/analyzer/constructorTransform.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAEH,qDAA0D;AAC1D,+DAA2D;AAC3D,uDAAqD;AAErD,yDAAiD;AACjD,qCAA+C;AAE/C,mCAA8G;AAC9G,2CAQqB;AACrB,qDAAkD;AAElD,SAAgB,uBAAuB,CAAC,SAAoB;IACxD,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,mBAAmB,EAAE;QACpD,OAAO,IAAI,CAAC;KACf;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAND,0DAMC;AAED,SAAgB,yBAAyB,CACrC,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,SAAoB,EACpB,MAAsB;IAEtB,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,mBAAmB,EAAE;QACpD,OAAO,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KACvE;IAED,4CAA4C;IAC5C,OAAO,MAAM,CAAC;AAClB,CAAC;AAbD,8DAaC;AAED,mEAAmE;AACnE,SAAS,qBAAqB,CAC1B,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,MAAsB;IAEtB,iFAAiF;IACjF,IAAI,CAAC,IAAA,uBAAe,EAAC,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,mBAAmB,EAAE;QACnG,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,gBAAgB,GAAG,IAAA,8BAAkB,EAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3E,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAA,kBAAU,EAAC,IAAA,6BAAiB,EAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE;QACpG,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACnE,IAAI,CAAC,IAAA,kBAAU,EAAC,cAAc,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7E,OAAO,MAAM,CAAC;KACjB;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,sBAAsB,GAAG,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAErD,kDAAkD;IAClD,SAAS,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;IAEvD,qDAAqD;IACrD,kDAAkD;IAClD,IAAI,CAAC,IAAA,kBAAU,EAAC,gBAAgB,CAAC,EAAE;QAC/B,OAAO,MAAM,CAAC;KACjB;IAED,gDAAgD;IAChD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,gBAAgB,mBAA4B,CAAC,EAAE;QACzE,OAAO,MAAM,CAAC;KACjB;IAED,kEAAkE;IAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE5C,MAAM,gBAAgB,GAAG,IAAA,mCAAuB,EAAC,gBAAgB,CAAC,CAAC;IAEnE,8CAA8C;IAC9C,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,uBAAuB,GAAG,KAAK,CAAC;IACpC,MAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAA,6BAAiB,EAAC,gBAAgB,CAAC,CAAC,CAAC;IAE/E,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;;QACxC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE;YACtB,OAAO;SACV;QAED,qDAAqD;QACrD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACX,+DAA+D;YAC/D,IACI,QAAQ,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM;gBAC1C,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,2BAAe,CAAC,WAAW,EAC1E;gBACE,IAAI,gBAAgB,CAAC,SAAS,KAAK,SAAS,EAAE;oBAC1C,MAAM,SAAS,GAAG,oBAAY,CAAC,yBAAyB,CACpD,gBAAgB,EAChB,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,KAAK,CAC5D,CAAC;oBACF,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;oBAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,mBAAmB,CAC/C,GAAG,CAAC,eAAe;oBACnB,WAAW,CAAC,SAAS,EACrB,IAAA,gCAAoB,EAAC,SAAS,CAAC,CAClC,CAAC;oBAEF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE;wBAC5E,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAChE,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC;4BACrD,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;4BAChD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;4BACzC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI;4BAC3C,SAAS,EAAE,MAAA,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,mCAAI,EAAE;yBAClF,CAAC,EACF,MAAA,GAAG,CAAC,eAAe,mCAAI,SAAS,CACnC,CAAC;wBAEF,cAAc,GAAG,IAAI,CAAC;qBACzB;iBACJ;qBAAM;oBACH,2CAA2C;oBAC3C,IAAI,CAAC,uBAAuB,EAAE;wBAC1B,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAChE,gCAAc,CAAC,uBAAuB,EACtC,gBAAgB,CAAC,kBAAkB,KAAK,CAAC;4BACrC,CAAC,CAAC,oBAAS,CAAC,UAAU,CAAC,wBAAwB,EAAE;4BACjD,CAAC,CAAC,oBAAS,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC;gCACrD,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB;6BAChD,CAAC,EACR,MAAA,GAAG,CAAC,eAAe,mCAAI,SAAS,CACnC,CAAC;qBACL;oBAED,uBAAuB,GAAG,IAAI,CAAC;oBAC/B,cAAc,GAAG,IAAI,CAAC;iBACzB;aACJ;iBAAM;gBACH,MAAM,SAAS,GAAG,oBAAY,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBACrF,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;gBACtC,MAAM,SAAS,GAAG,MAAA,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;gBAErE,MAAM,aAAa,GAAG,SAAS,CAAC,mBAAmB,CAC/C,GAAG,CAAC,eAAe;gBACnB,WAAW,CAAC,SAAS,EACrB,IAAA,gCAAoB,EAAC,SAAS,CAAC,CAClC,CAAC;gBAEF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE;oBAC5E,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAChE,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC;wBACrD,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;wBAChD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;wBACzC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI;wBAC3C,SAAS;qBACZ,CAAC,EACF,MAAA,GAAG,CAAC,eAAe,mCAAI,SAAS,CACnC,CAAC;oBAEF,cAAc,GAAG,IAAI,CAAC;iBACzB;gBAED,kCAAkC;gBAClC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;aAClC;SACJ;aAAM;YACH,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAC9C,CAAC,SAAS,EAAE,EAAE,WACV,OAAA,SAAS,CAAC,KAAK,CAAC,IAAI,MAAK,MAAA,GAAG,CAAC,IAAI,0CAAE,KAAK,CAAA,IAAI,SAAS,CAAC,MAAM,KAAK,2BAAe,CAAC,YAAY,CAAA,EAAA,CACpG,CAAC;YAEF,IAAI,CAAC,aAAa,EAAE;gBAChB,+BAA+B;gBAC/B,IAAI,gBAAgB,CAAC,WAAW,KAAK,SAAS,EAAE;oBAC5C,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAChE,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EACxE,GAAG,CAAC,IAAI,CACX,CAAC;oBACF,cAAc,GAAG,IAAI,CAAC;iBACzB;qBAAM;oBACH,MAAM,SAAS,GAAG,oBAAY,CAAC,yBAAyB,CACpD,gBAAgB,EAChB,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAK,CAC9D,CAAC;oBACF,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;oBAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,mBAAmB,CAC/C,GAAG,CAAC,eAAe;oBACnB,WAAW,CAAC,SAAS,EACrB,IAAA,gCAAoB,EAAC,SAAS,CAAC,CAClC,CAAC;oBAEF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE;wBAC5E,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAChE,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC;4BACrD,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;4BAChD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;4BACzC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI;4BAC3C,SAAS,EAAE,MAAA,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,mCAAI,EAAE;yBACpF,CAAC,EACF,MAAA,GAAG,CAAC,eAAe,mCAAI,SAAS,CACnC,CAAC;wBAEF,cAAc,GAAG,IAAI,CAAC;qBACzB;iBACJ;aACJ;iBAAM;gBACH,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAK,CAAC;gBAC5C,MAAM,SAAS,GAAG,oBAAY,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;gBAEhG,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACzB,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAChE,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAC5E,GAAG,CAAC,IAAI,CACX,CAAC;oBAEF,cAAc,GAAG,IAAI,CAAC;iBACzB;qBAAM;oBACH,MAAM,IAAI,GAAG,IAAI,+BAAkB,EAAE,CAAC;oBAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,mBAAmB,CAC/C,GAAG,CAAC,eAAe;oBACnB,WAAW,CAAC,SAAS,EACrB,IAAA,gCAAoB,EAAC,SAAS,CAAC,CAClC,CAAC;oBAEF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE;wBAC5E,SAAS,CAAC,aAAa,CACnB,IAAA,8BAAW,EAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,uBAAuB,EAChE,gCAAc,CAAC,uBAAuB,EACtC,oBAAS,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC;4BACrD,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC;4BAChD,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;4BACzC,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI;4BAC3C,SAAS;yBACZ,CAAC,EACF,MAAA,GAAG,CAAC,eAAe,mCAAI,SAAS,CACnC,CAAC;wBAEF,cAAc,GAAG,IAAI,CAAC;qBACzB;oBACD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;iBACjC;aACJ;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,IAAA,+BAAmB,EAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACtF,IAAI,CAAC,IAAA,kBAAU,EAAC,uBAAuB,CAAC,EAAE;QACtC,OAAO,MAAM,CAAC;KACjB;IAED,mEAAmE;IACnE,qBAAqB;IACrB,MAAM,gBAAgB,GAAwB,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1G,MAAM,gBAAgB,GAAsB,EAAE,GAAG,KAAK,EAAE,CAAC;QACzD,gBAAgB,CAAC,IAAI,GAAG,oBAAY,CAAC,yBAAyB,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAE/F,qEAAqE;QACrE,+DAA+D;QAC/D,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACxC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC;SACtC;QACD,OAAO,gBAAgB,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1D,IAAI,KAAK,CAAC,QAAQ,6BAAuC,EAAE;YACvD,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,KAAK,CAAC,QAAQ,uBAAiC,EAAE;YACjD,OAAO,IAAI,CAAC;SACf;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/D,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAClD,OAAO,KAAK,CAAC,QAAQ,6BAAuC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,wBAAwB,EAAE,GAAG,WAAW,CAAC,CAAC;IAE3F,mEAAmE;IACnE,MAAM,iBAAiB,GAAG,oBAAY,CAAC,cAAc,CACjD,cAAc,CAAC,OAAO,CAAC,IAAI,EAC3B,cAAc,CAAC,OAAO,CAAC,QAAQ,EAC/B,cAAc,CAAC,OAAO,CAAC,UAAU,EACjC,cAAc,CAAC,OAAO,CAAC,KAAK,EAC5B,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAC5C,CAAC;IAEF,IAAI,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9C,oBAAY,CAAC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACtF;IACD,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,oBAAY,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,OAAO,CAAC,kBAAkB;QAC7F,CAAC,CAAC,oBAAY,CAAC,wBAAwB,CAAC,uBAAuB,CAAC;QAChE,CAAC,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;IACjD,iBAAiB,CAAC,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC;IAC3E,iBAAiB,CAAC,OAAO,CAAC,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,cAAc,CAAC;IAE1F,uFAAuF;IACvF,MAAM,eAAe,GAAG,iBAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/E,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,eAAM,CAAC,cAAc,sBAA0B,iBAAiB,CAAC,CAAC,CAAC;IAElH,OAAO;QACH,UAAU,EAAE,eAAe;QAC3B,gBAAgB,EAAE,KAAK;QACvB,cAAc;KACjB,CAAC;AACN,CAAC"}
|
@@ -79,15 +79,15 @@ class PackageTypeVerifier {
|
|
79
79
|
if (publicModules.length === 0) {
|
80
80
|
commonDiagnostics.push(new diagnostic_1.Diagnostic(0 /* Error */, `Module "${trimmedModuleName}" cannot be resolved`, (0, textRange_1.getEmptyRange)()));
|
81
81
|
}
|
82
|
-
// Build a
|
82
|
+
// Build a set of all public symbols exported by this package. We'll
|
83
83
|
// use this map to determine which diagnostics to report. We don't want
|
84
84
|
// to report diagnostics many times for types that include public types.
|
85
|
-
const
|
85
|
+
const publicSymbols = new Set();
|
86
86
|
publicModules.forEach((moduleName) => {
|
87
|
-
this._getPublicSymbolsForModule(moduleName,
|
87
|
+
this._getPublicSymbolsForModule(moduleName, publicSymbols, report.alternateSymbolNames);
|
88
88
|
});
|
89
89
|
publicModules.forEach((moduleName) => {
|
90
|
-
this._verifyTypesOfModule(moduleName,
|
90
|
+
this._verifyTypesOfModule(moduleName, publicSymbols, report);
|
91
91
|
});
|
92
92
|
}
|
93
93
|
}
|
@@ -138,7 +138,7 @@ class PackageTypeVerifier {
|
|
138
138
|
_resolveImport(moduleName) {
|
139
139
|
return this._importResolver.resolveImport('', this._execEnv, (0, importResolver_1.createImportedModuleDescriptor)(moduleName));
|
140
140
|
}
|
141
|
-
_getPublicSymbolsForModule(moduleName,
|
141
|
+
_getPublicSymbolsForModule(moduleName, publicSymbols, alternateSymbolNames) {
|
142
142
|
const importResult = this._resolveImport(moduleName);
|
143
143
|
if (importResult.isImportFound) {
|
144
144
|
const modulePath = importResult.resolvedPaths[importResult.resolvedPaths.length - 1];
|
@@ -152,11 +152,11 @@ class PackageTypeVerifier {
|
|
152
152
|
};
|
153
153
|
const parseTree = sourceFile.getParseResults().parseTree;
|
154
154
|
const moduleScope = (0, scopeUtils_1.getScopeForNode)(parseTree);
|
155
|
-
this._getPublicSymbolsInSymbolTable(
|
155
|
+
this._getPublicSymbolsInSymbolTable(publicSymbols, alternateSymbolNames, module, module.name, moduleScope.symbolTable, 3 /* Module */);
|
156
156
|
}
|
157
157
|
}
|
158
158
|
}
|
159
|
-
_getPublicSymbolsInSymbolTable(
|
159
|
+
_getPublicSymbolsInSymbolTable(publicSymbols, alternateSymbolNames, module, scopeName, symbolTable, scopeType) {
|
160
160
|
symbolTable.forEach((symbol, name) => {
|
161
161
|
if (!(0, symbolNameUtils_1.isPrivateOrProtectedName)(name) &&
|
162
162
|
!symbol.isIgnoredForProtocolMatch() &&
|
@@ -164,7 +164,7 @@ class PackageTypeVerifier {
|
|
164
164
|
const fullName = `${scopeName}.${name}`;
|
165
165
|
if (!symbol.isExternallyHidden() && !symbol.isPrivateMember() && !symbol.isPrivatePyTypedImport()) {
|
166
166
|
const symbolType = this._program.getTypeOfSymbol(symbol);
|
167
|
-
|
167
|
+
publicSymbols.add(fullName);
|
168
168
|
const typedDecls = symbol.getTypedDeclarations();
|
169
169
|
if (typedDecls.length > 0) {
|
170
170
|
// Is this a class declared within this module or class?
|
@@ -172,7 +172,7 @@ class PackageTypeVerifier {
|
|
172
172
|
const classDecl = typedDecls.find((decl) => decl.type === 6 /* Class */);
|
173
173
|
if (classDecl) {
|
174
174
|
if ((0, types_1.isInstantiableClass)(symbolType)) {
|
175
|
-
this._getPublicSymbolsInSymbolTable(
|
175
|
+
this._getPublicSymbolsInSymbolTable(publicSymbols, alternateSymbolNames, module, fullName, symbolType.details.fields, 2 /* Class */);
|
176
176
|
}
|
177
177
|
}
|
178
178
|
}
|
@@ -201,7 +201,7 @@ class PackageTypeVerifier {
|
|
201
201
|
}
|
202
202
|
}
|
203
203
|
}
|
204
|
-
_verifyTypesOfModule(moduleName,
|
204
|
+
_verifyTypesOfModule(moduleName, publicSymbols, report) {
|
205
205
|
const importResult = this._resolveImport(moduleName);
|
206
206
|
if (!importResult.isImportFound) {
|
207
207
|
report.generalDiagnostics.push(new diagnostic_1.Diagnostic(0 /* Error */, `Could not resolve module "${moduleName}"`, (0, textRange_1.getEmptyRange)()));
|
@@ -222,7 +222,7 @@ class PackageTypeVerifier {
|
|
222
222
|
if (sourceFile) {
|
223
223
|
const parseTree = sourceFile.getParseResults().parseTree;
|
224
224
|
const moduleScope = (0, scopeUtils_1.getScopeForNode)(parseTree);
|
225
|
-
this._getTypeKnownStatusForSymbolTable(report, module.name, moduleScope.symbolTable, 3 /* Module */,
|
225
|
+
this._getTypeKnownStatusForSymbolTable(report, module.name, moduleScope.symbolTable, 3 /* Module */, publicSymbols);
|
226
226
|
}
|
227
227
|
else {
|
228
228
|
report.generalDiagnostics.push(new diagnostic_1.Diagnostic(0 /* Error */, `Could not bind file "${modulePath}"`, (0, textRange_1.getEmptyRange)()));
|
@@ -290,7 +290,7 @@ class PackageTypeVerifier {
|
|
290
290
|
// If we're ignoring unknown types from other packages, see if we should skip.
|
291
291
|
return report.ignoreExternal && !fullTypeName.startsWith(report.packageName);
|
292
292
|
}
|
293
|
-
_getTypeKnownStatusForSymbolTable(report, scopeName, symbolTable, scopeType,
|
293
|
+
_getTypeKnownStatusForSymbolTable(report, scopeName, symbolTable, scopeType, publicSymbols, overrideSymbolCallback) {
|
294
294
|
if (this._shouldIgnoreType(report, scopeName)) {
|
295
295
|
return 0 /* Known */;
|
296
296
|
}
|
@@ -336,10 +336,10 @@ class PackageTypeVerifier {
|
|
336
336
|
const primaryDecl = typedDecls.length > 0 ? typedDecls[typedDecls.length - 1] : undefined;
|
337
337
|
let symbolInfo;
|
338
338
|
if ((primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 6 /* Class */ && (0, types_1.isInstantiableClass)(symbolType)) {
|
339
|
-
symbolInfo = this._getSymbolForClass(report, symbolType,
|
339
|
+
symbolInfo = this._getSymbolForClass(report, symbolType, publicSymbols);
|
340
340
|
}
|
341
341
|
else if ((primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 8 /* Alias */ && (0, types_1.isModule)(symbolType)) {
|
342
|
-
symbolInfo = this._getSymbolForModule(report, symbolType,
|
342
|
+
symbolInfo = this._getSymbolForModule(report, symbolType, publicSymbols);
|
343
343
|
}
|
344
344
|
else {
|
345
345
|
const decls = symbol.getDeclarations();
|
@@ -347,7 +347,7 @@ class PackageTypeVerifier {
|
|
347
347
|
const declRange = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.range) || (0, textRange_1.getEmptyRange)();
|
348
348
|
const declPath = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.path) || '';
|
349
349
|
const symbolCategory = this._getSymbolCategory(symbol, symbolType);
|
350
|
-
const isExported =
|
350
|
+
const isExported = publicSymbols.has(fullName);
|
351
351
|
// If the only reference to this symbol is a "__slots__" entry, we will
|
352
352
|
// skip it when considering type completeness.
|
353
353
|
if (decls.length === 1 &&
|
@@ -368,7 +368,7 @@ class PackageTypeVerifier {
|
|
368
368
|
};
|
369
369
|
this._addSymbol(report, symbolInfo);
|
370
370
|
if (!this._isSymbolTypeImplied(scopeType, name)) {
|
371
|
-
this._getSymbolTypeKnownStatus(report, symbolInfo, symbolType, declRange, declPath,
|
371
|
+
this._getSymbolTypeKnownStatus(report, symbolInfo, symbolType, declRange, declPath, publicSymbols);
|
372
372
|
}
|
373
373
|
}
|
374
374
|
if (usesAmbiguousOverride) {
|
@@ -397,7 +397,7 @@ class PackageTypeVerifier {
|
|
397
397
|
// Determines whether the type for the symbol in question is fully known.
|
398
398
|
// If not, it adds diagnostics to the symbol information and updates the
|
399
399
|
// typeKnownStatus field.
|
400
|
-
_getSymbolTypeKnownStatus(report, symbolInfo, type, declRange, declFilePath,
|
400
|
+
_getSymbolTypeKnownStatus(report, symbolInfo, type, declRange, declFilePath, publicSymbols, skipDocStringCheck = false) {
|
401
401
|
let knownStatus = 0 /* Known */;
|
402
402
|
if (type.typeAliasInfo && type.typeAliasInfo.typeArguments) {
|
403
403
|
type.typeAliasInfo.typeArguments.forEach((typeArg, index) => {
|
@@ -432,19 +432,19 @@ class PackageTypeVerifier {
|
|
432
432
|
}
|
433
433
|
case 9 /* Union */: {
|
434
434
|
(0, typeUtils_1.doForEachSubtype)(type, (subtype) => {
|
435
|
-
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getSymbolTypeKnownStatus(report, symbolInfo, subtype, declRange, declFilePath,
|
435
|
+
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getSymbolTypeKnownStatus(report, symbolInfo, subtype, declRange, declFilePath, publicSymbols));
|
436
436
|
});
|
437
437
|
break;
|
438
438
|
}
|
439
439
|
case 6 /* OverloadedFunction */: {
|
440
440
|
for (const overload of type.overloads) {
|
441
|
-
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getSymbolTypeKnownStatus(report, symbolInfo, overload, declRange, declFilePath,
|
441
|
+
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getSymbolTypeKnownStatus(report, symbolInfo, overload, declRange, declFilePath, publicSymbols));
|
442
442
|
}
|
443
443
|
break;
|
444
444
|
}
|
445
445
|
case 5 /* Function */: {
|
446
446
|
if (!this._shouldIgnoreType(report, type.details.fullName)) {
|
447
|
-
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getFunctionTypeKnownStatus(report, type,
|
447
|
+
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getFunctionTypeKnownStatus(report, type, publicSymbols, symbolInfo, declRange, declFilePath, undefined /* diag */, skipDocStringCheck));
|
448
448
|
}
|
449
449
|
break;
|
450
450
|
}
|
@@ -468,14 +468,14 @@ class PackageTypeVerifier {
|
|
468
468
|
}
|
469
469
|
// Don't require docstrings for setters or deleters.
|
470
470
|
const skipDocStringCheck = accessorName !== 'fget';
|
471
|
-
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getSymbolTypeKnownStatus(report, symbolInfo, accessType, (0, textRange_1.getEmptyRange)(), '',
|
471
|
+
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getSymbolTypeKnownStatus(report, symbolInfo, accessType, (0, textRange_1.getEmptyRange)(), '', publicSymbols, skipDocStringCheck));
|
472
472
|
});
|
473
473
|
break;
|
474
474
|
}
|
475
475
|
if (!this._shouldIgnoreType(report, type.details.fullName)) {
|
476
476
|
// Don't bother type-checking built-in types.
|
477
477
|
if (!types_1.ClassType.isBuiltIn(type)) {
|
478
|
-
const symbolInfo = this._getSymbolForClass(report, type,
|
478
|
+
const symbolInfo = this._getSymbolForClass(report, type, publicSymbols);
|
479
479
|
knownStatus = this._updateKnownStatusIfWorse(knownStatus, symbolInfo.typeKnownStatus);
|
480
480
|
}
|
481
481
|
}
|
@@ -498,7 +498,7 @@ class PackageTypeVerifier {
|
|
498
498
|
}
|
499
499
|
case 8 /* Module */: {
|
500
500
|
if (!this._shouldIgnoreType(report, type.moduleName)) {
|
501
|
-
const moduleSymbol = this._getSymbolForModule(report, type,
|
501
|
+
const moduleSymbol = this._getSymbolForModule(report, type, publicSymbols);
|
502
502
|
if (moduleSymbol.typeKnownStatus !== 0 /* Known */) {
|
503
503
|
this._addSymbolError(symbolInfo, `Module "${moduleSymbol.fullName}" is partially unknown`, declRange, declFilePath);
|
504
504
|
knownStatus = this._updateKnownStatusIfWorse(knownStatus, moduleSymbol.typeKnownStatus);
|
@@ -511,7 +511,7 @@ class PackageTypeVerifier {
|
|
511
511
|
symbolInfo.typeKnownStatus = this._updateKnownStatusIfWorse(symbolInfo.typeKnownStatus, knownStatus);
|
512
512
|
return knownStatus;
|
513
513
|
}
|
514
|
-
_getFunctionTypeKnownStatus(report, type,
|
514
|
+
_getFunctionTypeKnownStatus(report, type, publicSymbols, symbolInfo, declRange, declFilePath, diag, skipDocStringCheck = false) {
|
515
515
|
let knownStatus = 0 /* Known */;
|
516
516
|
// If the file path wasn't provided, try to get it from the type.
|
517
517
|
if (type.details.declaration && !declFilePath) {
|
@@ -545,7 +545,7 @@ class PackageTypeVerifier {
|
|
545
545
|
}
|
546
546
|
else {
|
547
547
|
const extraInfo = new diagnostic_1.DiagnosticAddendum();
|
548
|
-
const paramKnownStatus = this._getTypeKnownStatus(report, param.type,
|
548
|
+
const paramKnownStatus = this._getTypeKnownStatus(report, param.type, publicSymbols, extraInfo.createAddendum());
|
549
549
|
if (paramKnownStatus !== 0 /* Known */) {
|
550
550
|
extraInfo.addMessage(`Parameter type is "${this._program.printType(param.type)}"`);
|
551
551
|
if (symbolInfo) {
|
@@ -570,7 +570,7 @@ class PackageTypeVerifier {
|
|
570
570
|
}
|
571
571
|
else {
|
572
572
|
const extraInfo = new diagnostic_1.DiagnosticAddendum();
|
573
|
-
const returnTypeKnownStatus = this._getTypeKnownStatus(report, type.details.declaredReturnType,
|
573
|
+
const returnTypeKnownStatus = this._getTypeKnownStatus(report, type.details.declaredReturnType, publicSymbols, extraInfo.createAddendum());
|
574
574
|
if (returnTypeKnownStatus !== 0 /* Known */) {
|
575
575
|
extraInfo.addMessage(`Return type is "${this._program.printType(type.details.declaredReturnType)}"`);
|
576
576
|
if (symbolInfo) {
|
@@ -626,7 +626,7 @@ class PackageTypeVerifier {
|
|
626
626
|
}
|
627
627
|
return knownStatus;
|
628
628
|
}
|
629
|
-
_getSymbolForClass(report, type,
|
629
|
+
_getSymbolForClass(report, type, publicSymbols) {
|
630
630
|
// See if this type is already analyzed.
|
631
631
|
const cachedType = report.symbols.get(type.details.fullName);
|
632
632
|
if (cachedType) {
|
@@ -638,7 +638,7 @@ class PackageTypeVerifier {
|
|
638
638
|
name: type.details.name,
|
639
639
|
fullName: type.details.fullName,
|
640
640
|
filePath: type.details.filePath,
|
641
|
-
isExported:
|
641
|
+
isExported: publicSymbols.has(type.details.fullName),
|
642
642
|
typeKnownStatus: 0 /* Known */,
|
643
643
|
referenceCount: 1,
|
644
644
|
diagnostics: [],
|
@@ -650,7 +650,7 @@ class PackageTypeVerifier {
|
|
650
650
|
this._addSymbolWarning(symbolInfo, `No docstring found for class "${type.details.fullName}"`, (0, textRange_1.getEmptyRange)(), '');
|
651
651
|
report.missingClassDocStringCount++;
|
652
652
|
}
|
653
|
-
const symbolTableTypeKnownStatus = this._getTypeKnownStatusForSymbolTable(report, type.details.fullName, type.details.fields, 2 /* Class */,
|
653
|
+
const symbolTableTypeKnownStatus = this._getTypeKnownStatusForSymbolTable(report, type.details.fullName, type.details.fields, 2 /* Class */, publicSymbols, (name, symbol) => {
|
654
654
|
// If the symbol within this class is lacking a type declaration,
|
655
655
|
// see if we can find a same-named symbol in a parent class with
|
656
656
|
// a type declaration.
|
@@ -675,7 +675,7 @@ class PackageTypeVerifier {
|
|
675
675
|
}
|
676
676
|
else {
|
677
677
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
678
|
-
const metaclassKnownStatus = this._getTypeKnownStatus(report, type.details.effectiveMetaclass,
|
678
|
+
const metaclassKnownStatus = this._getTypeKnownStatus(report, type.details.effectiveMetaclass, publicSymbols, diag);
|
679
679
|
if (metaclassKnownStatus !== 0 /* Known */) {
|
680
680
|
this._addSymbolError(symbolInfo, `Type of metaclass "${type.details.effectiveMetaclass}" is partially unknown` +
|
681
681
|
diag.getString(), (0, textRange_1.getEmptyRange)(), '');
|
@@ -696,7 +696,7 @@ class PackageTypeVerifier {
|
|
696
696
|
return;
|
697
697
|
}
|
698
698
|
const diag = new diagnostic_1.DiagnosticAddendum();
|
699
|
-
const baseClassTypeStatus = this._getTypeKnownStatus(report, baseClass,
|
699
|
+
const baseClassTypeStatus = this._getTypeKnownStatus(report, baseClass, publicSymbols, diag);
|
700
700
|
if (baseClassTypeStatus !== 0 /* Known */) {
|
701
701
|
this._addSymbolError(symbolInfo, `Type of base class "${baseClass.details.fullName}" is partially unknown` + diag.getString(), (0, textRange_1.getEmptyRange)(), '');
|
702
702
|
symbolInfo.typeKnownStatus = this._updateKnownStatusIfWorse(symbolInfo.typeKnownStatus, baseClassTypeStatus);
|
@@ -705,7 +705,7 @@ class PackageTypeVerifier {
|
|
705
705
|
});
|
706
706
|
return symbolInfo;
|
707
707
|
}
|
708
|
-
_getSymbolForModule(report, type,
|
708
|
+
_getSymbolForModule(report, type, publicSymbols) {
|
709
709
|
// See if this type is already analyzed.
|
710
710
|
const cachedType = report.symbols.get(type.moduleName);
|
711
711
|
if (cachedType) {
|
@@ -717,18 +717,18 @@ class PackageTypeVerifier {
|
|
717
717
|
name: type.moduleName,
|
718
718
|
fullName: type.moduleName,
|
719
719
|
filePath: type.filePath,
|
720
|
-
isExported:
|
720
|
+
isExported: publicSymbols.has(type.moduleName),
|
721
721
|
typeKnownStatus: 0 /* Known */,
|
722
722
|
referenceCount: 1,
|
723
723
|
diagnostics: [],
|
724
724
|
scopeType: 3 /* Module */,
|
725
725
|
};
|
726
726
|
this._addSymbol(report, symbolInfo);
|
727
|
-
const symbolTableTypeKnownStatus = this._getTypeKnownStatusForSymbolTable(report, type.moduleName, type.fields, 3 /* Module */,
|
727
|
+
const symbolTableTypeKnownStatus = this._getTypeKnownStatusForSymbolTable(report, type.moduleName, type.fields, 3 /* Module */, publicSymbols);
|
728
728
|
symbolInfo.typeKnownStatus = this._updateKnownStatusIfWorse(symbolInfo.typeKnownStatus, symbolTableTypeKnownStatus);
|
729
729
|
return symbolInfo;
|
730
730
|
}
|
731
|
-
_getTypeKnownStatus(report, type,
|
731
|
+
_getTypeKnownStatus(report, type, publicSymbols, diag) {
|
732
732
|
let knownStatus = 0 /* Known */;
|
733
733
|
if (type.typeAliasInfo && type.typeAliasInfo.typeArguments) {
|
734
734
|
type.typeAliasInfo.typeArguments.forEach((typeArg, index) => {
|
@@ -758,19 +758,19 @@ class PackageTypeVerifier {
|
|
758
758
|
}
|
759
759
|
case 9 /* Union */: {
|
760
760
|
(0, typeUtils_1.doForEachSubtype)(type, (subtype) => {
|
761
|
-
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getTypeKnownStatus(report, subtype,
|
761
|
+
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getTypeKnownStatus(report, subtype, publicSymbols, diag.createAddendum()));
|
762
762
|
});
|
763
763
|
break;
|
764
764
|
}
|
765
765
|
case 6 /* OverloadedFunction */: {
|
766
766
|
for (const overload of type.overloads) {
|
767
|
-
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getTypeKnownStatus(report, overload,
|
767
|
+
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getTypeKnownStatus(report, overload, publicSymbols, diag.createAddendum()));
|
768
768
|
}
|
769
769
|
break;
|
770
770
|
}
|
771
771
|
case 5 /* Function */: {
|
772
772
|
if (!this._shouldIgnoreType(report, type.details.fullName)) {
|
773
|
-
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getFunctionTypeKnownStatus(report, type,
|
773
|
+
knownStatus = this._updateKnownStatusIfWorse(knownStatus, this._getFunctionTypeKnownStatus(report, type, publicSymbols,
|
774
774
|
/* symbolInfo */ undefined,
|
775
775
|
/* declRange */ undefined,
|
776
776
|
/* declFilePath */ undefined, diag));
|
@@ -781,7 +781,7 @@ class PackageTypeVerifier {
|
|
781
781
|
if (!this._shouldIgnoreType(report, type.details.fullName)) {
|
782
782
|
// Don't bother type-checking built-in types.
|
783
783
|
if (!types_1.ClassType.isBuiltIn(type)) {
|
784
|
-
const symbolInfo = this._getSymbolForClass(report, type,
|
784
|
+
const symbolInfo = this._getSymbolForClass(report, type, publicSymbols);
|
785
785
|
knownStatus = this._updateKnownStatusIfWorse(knownStatus, symbolInfo.typeKnownStatus);
|
786
786
|
}
|
787
787
|
}
|
@@ -802,7 +802,7 @@ class PackageTypeVerifier {
|
|
802
802
|
}
|
803
803
|
case 8 /* Module */: {
|
804
804
|
if (!this._shouldIgnoreType(report, type.moduleName)) {
|
805
|
-
const moduleSymbol = this._getSymbolForModule(report, type,
|
805
|
+
const moduleSymbol = this._getSymbolForModule(report, type, publicSymbols);
|
806
806
|
knownStatus = this._updateKnownStatusIfWorse(knownStatus, moduleSymbol.typeKnownStatus);
|
807
807
|
}
|
808
808
|
break;
|