@zzzen/pyright-internal 1.2.0-dev.20231210 → 1.2.0-dev.20231224

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.
Files changed (101) hide show
  1. package/dist/analyzer/binder.js +22 -18
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/codeFlowEngine.js +25 -13
  4. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  5. package/dist/analyzer/codeFlowTypes.d.ts +0 -1
  6. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  7. package/dist/analyzer/decorators.js +14 -43
  8. package/dist/analyzer/decorators.js.map +1 -1
  9. package/dist/analyzer/importResolver.js +1 -1
  10. package/dist/analyzer/importResolver.js.map +1 -1
  11. package/dist/analyzer/operations.d.ts +1 -1
  12. package/dist/analyzer/operations.js +16 -1
  13. package/dist/analyzer/operations.js.map +1 -1
  14. package/dist/analyzer/packageTypeVerifier.d.ts +5 -1
  15. package/dist/analyzer/packageTypeVerifier.js +59 -41
  16. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  17. package/dist/analyzer/parameterUtils.js +1 -1
  18. package/dist/analyzer/parameterUtils.js.map +1 -1
  19. package/dist/analyzer/parseTreeUtils.js +1 -1
  20. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  21. package/dist/analyzer/patternMatching.js +23 -0
  22. package/dist/analyzer/patternMatching.js.map +1 -1
  23. package/dist/analyzer/properties.js +3 -0
  24. package/dist/analyzer/properties.js.map +1 -1
  25. package/dist/analyzer/protocols.js +18 -6
  26. package/dist/analyzer/protocols.js.map +1 -1
  27. package/dist/analyzer/service.js +12 -10
  28. package/dist/analyzer/service.js.map +1 -1
  29. package/dist/analyzer/sourceMapper.js +3 -2
  30. package/dist/analyzer/sourceMapper.js.map +1 -1
  31. package/dist/analyzer/typeEvaluator.js +144 -120
  32. package/dist/analyzer/typeEvaluator.js.map +1 -1
  33. package/dist/analyzer/typeEvaluatorTypes.d.ts +4 -4
  34. package/dist/analyzer/typeGuards.d.ts +1 -0
  35. package/dist/analyzer/typeGuards.js +9 -7
  36. package/dist/analyzer/typeGuards.js.map +1 -1
  37. package/dist/analyzer/typeUtils.d.ts +2 -1
  38. package/dist/analyzer/typeUtils.js +35 -12
  39. package/dist/analyzer/typeUtils.js.map +1 -1
  40. package/dist/analyzer/typeVarContext.d.ts +0 -1
  41. package/dist/analyzer/typeVarContext.js +4 -5
  42. package/dist/analyzer/typeVarContext.js.map +1 -1
  43. package/dist/analyzer/types.d.ts +7 -4
  44. package/dist/analyzer/types.js +10 -7
  45. package/dist/analyzer/types.js.map +1 -1
  46. package/dist/common/fileWatcher.d.ts +1 -1
  47. package/dist/common/realFileSystem.js +1 -1
  48. package/dist/common/realFileSystem.js.map +1 -1
  49. package/dist/common/uri/emptyUri.js +1 -25
  50. package/dist/common/uri/emptyUri.js.map +1 -1
  51. package/dist/common/uri/webUri.js +1 -25
  52. package/dist/common/uri/webUri.js.map +1 -1
  53. package/dist/common/workspaceEditUtils.js +3 -3
  54. package/dist/common/workspaceEditUtils.js.map +1 -1
  55. package/dist/languageService/documentSymbolCollector.js +1 -1
  56. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  57. package/dist/languageService/symbolIndexer.js +10 -2
  58. package/dist/languageService/symbolIndexer.js.map +1 -1
  59. package/dist/localization/localize.d.ts +4 -0
  60. package/dist/localization/localize.js +4 -0
  61. package/dist/localization/localize.js.map +1 -1
  62. package/dist/localization/package.nls.en-us.json +4 -0
  63. package/dist/parser/parseNodes.d.ts +1 -0
  64. package/dist/parser/parseNodes.js +1 -0
  65. package/dist/parser/parseNodes.js.map +1 -1
  66. package/dist/parser/parser.js +18 -15
  67. package/dist/parser/parser.js.map +1 -1
  68. package/dist/pyright.js +10 -7
  69. package/dist/pyright.js.map +1 -1
  70. package/dist/tests/classDeclaration.test.d.ts +1 -0
  71. package/dist/tests/classDeclaration.test.js +166 -0
  72. package/dist/tests/classDeclaration.test.js.map +1 -0
  73. package/dist/tests/fourslash/fourslash.d.ts +1 -0
  74. package/dist/tests/fourslash/fourslash.js +2 -2
  75. package/dist/tests/fourslash/rename.parens.fourslash.d.ts +1 -0
  76. package/dist/tests/fourslash/rename.parens.fourslash.js +20 -0
  77. package/dist/tests/fourslash/rename.parens.fourslash.js.map +1 -0
  78. package/dist/tests/fourslash/typeVerifier.fourslash.d.ts +1 -0
  79. package/dist/tests/fourslash/typeVerifier.fourslash.js +47 -0
  80. package/dist/tests/fourslash/typeVerifier.fourslash.js.map +1 -0
  81. package/dist/tests/harness/fourslash/testState.d.ts +2 -0
  82. package/dist/tests/harness/fourslash/testState.js +16 -0
  83. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  84. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +4 -0
  85. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
  86. package/dist/tests/harness/vfs/filesystem.js +1 -1
  87. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  88. package/dist/tests/importResolver.test.js +25 -0
  89. package/dist/tests/importResolver.test.js.map +1 -1
  90. package/dist/tests/sourceMapperUtils.test.js +60 -29
  91. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  92. package/dist/tests/typeEvaluator1.test.js +1 -1
  93. package/dist/tests/typeEvaluator2.test.js +8 -0
  94. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  95. package/dist/tests/typeEvaluator3.test.js +17 -1
  96. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  97. package/dist/tests/typeEvaluator4.test.js +13 -1
  98. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  99. package/dist/tests/uri.test.js +4 -0
  100. package/dist/tests/uri.test.js.map +1 -1
  101. package/package.json +1 -1
package/dist/pyright.js CHANGED
@@ -375,7 +375,8 @@ async function processArgs() {
375
375
  }
376
376
  function verifyPackageTypes(serviceProvider, packageName, options, outputJson, minSeverityLevel, ignoreUnknownTypesFromImports) {
377
377
  try {
378
- const verifier = new packageTypeVerifier_1.PackageTypeVerifier(serviceProvider, options, packageName, ignoreUnknownTypesFromImports);
378
+ const host = new fullAccessHost_1.FullAccessHost(serviceProvider);
379
+ const verifier = new packageTypeVerifier_1.PackageTypeVerifier(serviceProvider, host, options, packageName, ignoreUnknownTypesFromImports);
379
380
  const report = verifier.verify();
380
381
  const jsonReport = buildTypeCompletenessReport(packageName, report, minSeverityLevel);
381
382
  if (outputJson) {
@@ -586,9 +587,6 @@ function printTypeCompletenessReportText(results, verboseOutput) {
586
587
  if (completenessReport.ignoreUnknownTypesFromImports) {
587
588
  console.info(` (Ignoring unknown types imported from other packages)`);
588
589
  }
589
- console.info(` Functions without docstring: ${completenessReport.missingFunctionDocStringCount}`);
590
- console.info(` Functions without default param: ${completenessReport.missingDefaultParamCount}`);
591
- console.info(` Classes without docstring: ${completenessReport.missingClassDocStringCount}`);
592
590
  console.info('');
593
591
  console.info(`Other symbols referenced but not exported by "${completenessReport.packageName}": ${completenessReport.otherSymbolCounts.withKnownType +
594
592
  completenessReport.otherSymbolCounts.withAmbiguousType +
@@ -597,6 +595,11 @@ function printTypeCompletenessReportText(results, verboseOutput) {
597
595
  console.info(` With ambiguous type: ${completenessReport.otherSymbolCounts.withAmbiguousType}`);
598
596
  console.info(` With unknown type: ${completenessReport.otherSymbolCounts.withUnknownType}`);
599
597
  console.info('');
598
+ console.info(`Symbols without documentation:`);
599
+ console.info(` Functions without docstring: ${completenessReport.missingFunctionDocStringCount}`);
600
+ console.info(` Functions without default param: ${completenessReport.missingDefaultParamCount}`);
601
+ console.info(` Classes without docstring: ${completenessReport.missingClassDocStringCount}`);
602
+ console.info('');
600
603
  console.info(`Type completeness score: ${Math.round(completenessReport.completenessScore * 1000) / 10}%`);
601
604
  console.info('');
602
605
  console.info(`Completed in ${results.summary.timeInSec}sec`);
@@ -696,7 +699,7 @@ function convertDiagnosticCategoryToSeverity(category) {
696
699
  }
697
700
  function convertDiagnosticToJson(uri, diag) {
698
701
  return {
699
- uri,
702
+ file: uri.getFilePath(),
700
703
  severity: convertDiagnosticCategoryToSeverity(diag.category),
701
704
  message: diag.message,
702
705
  range: (0, textRange_1.isEmptyRange)(diag.range) ? undefined : diag.range,
@@ -742,8 +745,8 @@ function reportDiagnosticsAsText(fileDiagnostics, minSeverityLevel) {
742
745
  }
743
746
  function logDiagnosticToConsole(diag, prefix = ' ') {
744
747
  let message = prefix;
745
- if (!diag.uri.isEmpty()) {
746
- message += `${diag.uri.toUserVisibleString()}:`;
748
+ if (diag.file) {
749
+ message += `${diag.file}:`;
747
750
  }
748
751
  if (diag.range && !(0, textRange_1.isEmptyRange)(diag.range)) {
749
752
  message +=
@@ -1 +1 @@
1
- {"version":3,"file":"pyright.js","sourceRoot":"","sources":["../../src/pyright.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pyright.js","sourceRoot":"","sources":["../../src/pyright.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ /*
3
+ * classDeclaration.test.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * Test class detail's declaration
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ const assert_1 = __importDefault(require("assert"));
14
+ const declaration_1 = require("../analyzer/declaration");
15
+ const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
16
+ const typeUtils_1 = require("../analyzer/typeUtils");
17
+ const types_1 = require("../analyzer/types");
18
+ const textRange_1 = require("../common/textRange");
19
+ const testState_1 = require("./harness/fourslash/testState");
20
+ test('regular class', () => {
21
+ const code = `
22
+ // @filename: test.py
23
+ //// [|class /*marker*/A:
24
+ //// pass|]
25
+ `;
26
+ checkClassDetail(code);
27
+ });
28
+ test('Meta class', () => {
29
+ const code = `
30
+ // @filename: test.py
31
+ //// [|class /*range*/MyMeta(type):
32
+ //// def __new__(cls, name, bases, dct):
33
+ //// return super().__new__(cls, name, bases, dct)|]
34
+ ////
35
+ //// class MyClass(metaclass=MyMeta):
36
+ //// pass
37
+ ////
38
+ //// /*marker*/E = MyMeta()
39
+ `;
40
+ checkClassDetail(code, '__class_MyMeta');
41
+ });
42
+ test('special built in class', () => {
43
+ const code = `
44
+ // @filename: test.py
45
+ //// from typing import TypedDict
46
+ //// def foo(t: /*marker*/TypedDict): ...
47
+ `;
48
+ checkSpecialBuiltInClassDetail(code);
49
+ });
50
+ test('dynamic enum', () => {
51
+ const code = `
52
+ // @filename: test.py
53
+ //// from enum import Enum
54
+ //// /*marker*/E = Enum('E', { 'One': 1 })
55
+ `;
56
+ checkNoDeclarationInClassDetail(code);
57
+ });
58
+ test('dynamic named tuple', () => {
59
+ const code = `
60
+ // @filename: test.py
61
+ //// from typing import NamedTuple
62
+ //// /*marker*/N = NamedTuple("N", [('name', str)])
63
+ `;
64
+ checkNoDeclarationInClassDetail(code);
65
+ });
66
+ test('dynamic typed dict', () => {
67
+ const code = `
68
+ // @filename: test.py
69
+ //// from typing import TypedDict
70
+ //// /*marker*/T = TypedDict("T", { "one": str })
71
+ `;
72
+ checkNoDeclarationInClassDetail(code);
73
+ });
74
+ test('dynamic new type', () => {
75
+ const code = `
76
+ // @filename: test.py
77
+ //// from typing import NewType
78
+ //// /*marker*/I = NewType('I', int)
79
+ `;
80
+ checkNoDeclarationInClassDetail(code);
81
+ });
82
+ test('dynamic type', () => {
83
+ const code = `
84
+ // @filename: test.py
85
+ //// /*marker*/D = type('D', (object,), {})
86
+ `;
87
+ checkNoDeclarationInClassDetail(code);
88
+ });
89
+ test('property', () => {
90
+ const code = `
91
+ // @filename: test.py
92
+ //// class MyClass:
93
+ //// def __init__(self):
94
+ //// self._v = None
95
+ ////
96
+ //// @property
97
+ //// def /*getter*/value(self):
98
+ //// return self._v
99
+ ////
100
+ //// @value.setter
101
+ //// def /*setter*/value(self, value):
102
+ //// self._v = value
103
+ ////
104
+ //// @value.deleter
105
+ //// def /*deleter*/value(self):
106
+ //// del self._v
107
+ `;
108
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
109
+ ['getter', 'setter', 'deleter'].forEach((marker) => {
110
+ const node = (0, testState_1.getNodeAtMarker)(state, marker);
111
+ (0, assert_1.default)(node.nodeType === 38 /* ParseNodeType.Name */);
112
+ const functionNode = (0, parseTreeUtils_1.getEnclosingFunction)(node);
113
+ (0, assert_1.default)((functionNode === null || functionNode === void 0 ? void 0 : functionNode.nodeType) === 28 /* ParseNodeType.Function */);
114
+ const result = state.program.evaluator.getTypeOfFunction(functionNode);
115
+ (0, assert_1.default)(result === null || result === void 0 ? void 0 : result.decoratedType);
116
+ (0, assert_1.default)((0, typeUtils_1.isProperty)(result.decoratedType));
117
+ (0, assert_1.default)((0, types_1.isClassInstance)(result.decoratedType));
118
+ (0, assert_1.default)(result.decoratedType.details.declaration);
119
+ (0, assert_1.default)((0, declaration_1.isClassDeclaration)(result.decoratedType.details.declaration));
120
+ (0, assert_1.default)(result.decoratedType.details.declaration.moduleName === 'builtins');
121
+ (0, assert_1.default)(result.decoratedType.details.declaration.node.name.value === 'property');
122
+ });
123
+ });
124
+ function checkSpecialBuiltInClassDetail(code) {
125
+ var _a;
126
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
127
+ const node = (0, testState_1.getNodeAtMarker)(state);
128
+ (0, assert_1.default)(node.nodeType === 38 /* ParseNodeType.Name */);
129
+ const type = state.program.evaluator.getType(node);
130
+ (0, assert_1.default)((type === null || type === void 0 ? void 0 : type.category) === 6 /* TypeCategory.Class */);
131
+ assert_1.default.strictEqual(node.value, (_a = type.aliasName) !== null && _a !== void 0 ? _a : type.details.name);
132
+ (0, assert_1.default)(type.details.declaration);
133
+ if (type.aliasName) {
134
+ (0, assert_1.default)((0, declaration_1.isClassDeclaration)(type.details.declaration));
135
+ }
136
+ else {
137
+ (0, assert_1.default)((0, declaration_1.isSpecialBuiltInClassDeclaration)(type.details.declaration));
138
+ }
139
+ }
140
+ function checkNoDeclarationInClassDetail(code) {
141
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
142
+ _checkClassDetail(state, undefined);
143
+ }
144
+ function checkClassDetail(code, name) {
145
+ var _a;
146
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
147
+ _checkClassDetail(state, (_a = state.getRangeByMarkerName('marker')) !== null && _a !== void 0 ? _a : state.getRangeByMarkerName('range'), name);
148
+ }
149
+ function _checkClassDetail(state, range, name) {
150
+ var _a;
151
+ const node = (0, testState_1.getNodeAtMarker)(state);
152
+ (0, assert_1.default)(node.nodeType === 38 /* ParseNodeType.Name */);
153
+ const type = state.program.evaluator.getType(node);
154
+ (0, assert_1.default)((type === null || type === void 0 ? void 0 : type.category) === 6 /* TypeCategory.Class */);
155
+ assert_1.default.strictEqual(name !== null && name !== void 0 ? name : node.value, (_a = type.aliasName) !== null && _a !== void 0 ? _a : type.details.name);
156
+ if (range) {
157
+ (0, assert_1.default)(type.details.declaration);
158
+ (0, assert_1.default)((0, declaration_1.isClassDeclaration)(type.details.declaration));
159
+ assert_1.default.deepStrictEqual(textRange_1.TextRange.create(type.details.declaration.node.start, type.details.declaration.node.length), textRange_1.TextRange.fromBounds(range.pos, range.end));
160
+ }
161
+ else {
162
+ // There should be no decl.
163
+ (0, assert_1.default)(!type.details.declaration);
164
+ }
165
+ }
166
+ //# sourceMappingURL=classDeclaration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classDeclaration.test.js","sourceRoot":"","sources":["../../../src/tests/classDeclaration.test.ts"],"names":[],"mappings":"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"}
@@ -259,6 +259,7 @@ declare namespace _ {
259
259
  changes: FileEditAction[];
260
260
  };
261
261
  }, isUntitled?: boolean): void;
262
+ verifyTypeVerifierResults(packageName: string, ignoreUnknownTypesFromImports: boolean, verboseOutput: boolean, expected: object): void;
262
263
  replace(start: number, length: number, text: string): void;
263
264
  }
264
265
  interface InlayHint {
@@ -11,8 +11,8 @@
11
11
  * get ignored when test run due to how test code is injected when running.
12
12
  * see - server\pyright\server\src\tests\harness\fourslash\runner.ts@runCode - for more detail
13
13
  *
14
- * when run, helper variable will be bount to TestState (server\pyright\server\src\tests\harness\fourslash\testState.ts)
15
- * so make sure Foruslash type is in sync with TestState
14
+ * when run, helper variable will be bound to TestState (server\pyright\server\src\tests\harness\fourslash\testState.ts)
15
+ * so make sure Fourslash type is in sync with TestState
16
16
  *
17
17
  * for how markup language and helper is used in fourslash tests, see these 2 tests
18
18
  * server\pyright\server\src\tests\fourSlashParser.test.ts
@@ -0,0 +1 @@
1
+ /// <reference path="fourslash.d.ts" />
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /// <reference path="fourslash.ts" />
3
+ // @filename: test.py
4
+ //// [|/*marker*/A|] = True
5
+ //// if([|A|]):
6
+ //// pass
7
+ {
8
+ helper.verifyRename({
9
+ marker: {
10
+ newName: 'RenamedA',
11
+ changes: helper
12
+ .getRangesByText()
13
+ .get('A')
14
+ .map((r) => {
15
+ return { filePath: r.fileName, range: helper.convertPositionRange(r), replacementText: 'RenamedA' };
16
+ }),
17
+ },
18
+ });
19
+ }
20
+ //# sourceMappingURL=rename.parens.fourslash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.parens.fourslash.js","sourceRoot":"","sources":["../../../../src/tests/fourslash/rename.parens.fourslash.ts"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,qBAAqB;AACrB,2BAA2B;AAC3B,eAAe;AACf,aAAa;AAEb;IACI,MAAM,CAAC,YAAY,CAAC;QAChB,MAAM,EAAE;YACJ,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,MAAM;iBACV,eAAe,EAAE;iBACjB,GAAG,CAAC,GAAG,CAAE;iBACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACP,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;YACxG,CAAC,CAAC;SACT;KACJ,CAAC,CAAC;CACN"}
@@ -0,0 +1 @@
1
+ /// <reference path="fourslash.d.ts" />
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /// <reference path="fourslash.ts" />
3
+ // @filename: test_pkg/py.typed
4
+ // @library: true
5
+ ////
6
+ // @filename: test_pkg/__init__.py
7
+ // @library: true
8
+ ////
9
+ //// from .submodule1 import A as A
10
+ //// from ._submodule2 import B as B, func1 as func1
11
+ ////
12
+ // @filename: test_pkg/submodule1.py
13
+ // @library: true
14
+ ////
15
+ //// class A:
16
+ //// ...
17
+ // @filename: test_pkg/_submodule2.py
18
+ // @library: true
19
+ ////
20
+ //// class B:
21
+ //// ...
22
+ ////
23
+ //// def func1(a: int = ...) -> None:
24
+ //// ...
25
+ {
26
+ helper.verifyTypeVerifierResults('test_pkg', /* ignoreUnknownTypesFromImports */ false, /* verboseOutput */ false, {
27
+ generalDiagnostics: [],
28
+ missingClassDocStringCount: 4,
29
+ missingDefaultParamCount: 1,
30
+ missingFunctionDocStringCount: 1,
31
+ moduleName: 'test_pkg',
32
+ packageName: 'test_pkg',
33
+ modules: new Map([
34
+ ['/lib/site-packages/test_pkg/__init__.py', {}],
35
+ ['/lib/site-packages/test_pkg/submodule1.py', {}],
36
+ ]),
37
+ symbols: new Map([
38
+ ['test_pkg.submodule1', {}],
39
+ ['test_pkg.submodule1.A', {}],
40
+ ['test_pkg.A', {}],
41
+ ['test_pkg.B', {}],
42
+ ['test_pkg._submodule2.B', {}],
43
+ ['test_pkg.func1', {}],
44
+ ]),
45
+ });
46
+ }
47
+ //# sourceMappingURL=typeVerifier.fourslash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeVerifier.fourslash.js","sourceRoot":"","sources":["../../../../src/tests/fourslash/typeVerifier.fourslash.ts"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,+BAA+B;AAC/B,iBAAiB;AACjB,IAAI;AAEJ,kCAAkC;AAClC,iBAAiB;AACjB,IAAI;AACJ,mCAAmC;AACnC,oDAAoD;AACpD,IAAI;AAEJ,oCAAoC;AACpC,iBAAiB;AACjB,IAAI;AACJ,aAAa;AACb,YAAY;AAEZ,qCAAqC;AACrC,iBAAiB;AACjB,IAAI;AACJ,aAAa;AACb,YAAY;AACZ,IAAI;AACJ,qCAAqC;AACrC,YAAY;AAEZ;IACI,MAAM,CAAC,yBAAyB,CAAC,UAAU,EAAE,mCAAmC,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE;QAC/G,kBAAkB,EAAE,EAAE;QACtB,0BAA0B,EAAE,CAAC;QAC7B,wBAAwB,EAAE,CAAC;QAC3B,6BAA6B,EAAE,CAAC;QAChC,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,IAAI,GAAG,CAAiB;YAC7B,CAAC,yCAAyC,EAAE,EAAE,CAAC;YAC/C,CAAC,2CAA2C,EAAE,EAAE,CAAC;SACpD,CAAC;QACF,OAAO,EAAE,IAAI,GAAG,CAAiB;YAC7B,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAC3B,CAAC,uBAAuB,EAAE,EAAE,CAAC;YAC7B,CAAC,YAAY,EAAE,EAAE,CAAC;YAClB,CAAC,YAAY,EAAE,EAAE,CAAC;YAClB,CAAC,wBAAwB,EAAE,EAAE,CAAC;YAC9B,CAAC,gBAAgB,EAAE,EAAE,CAAC;SACzB,CAAC;KACL,CAAC,CAAC;CACN"}
@@ -1,6 +1,7 @@
1
1
  import { CancellationToken, CodeAction, Command, CompletionItem, CompletionList, DocumentHighlight, DocumentHighlightKind, ExecuteCommandParams, Location, MarkupKind, TextEdit, WorkspaceEdit } from 'vscode-languageserver';
2
2
  import { BackgroundAnalysisProgramFactory } from '../../../analyzer/backgroundAnalysisProgram';
3
3
  import { ImportResolver, ImportResolverFactory } from '../../../analyzer/importResolver';
4
+ import { PackageTypeReport } from '../../../analyzer/packageTypeReport';
4
5
  import { Program } from '../../../analyzer/program';
5
6
  import { ConfigOptions } from '../../../common/configOptions';
6
7
  import { ConsoleInterface } from '../../../common/console';
@@ -196,6 +197,7 @@ export declare class TestState {
196
197
  changes: FileEditAction[];
197
198
  };
198
199
  }, isUntitled?: boolean): void;
200
+ verifyTypeVerifierResults(packageName: string, ignoreUnknownTypesFromImports: boolean, verboseOutput: boolean, expected: PackageTypeReport): void;
199
201
  setCancelled(numberOfCalls: number): void;
200
202
  resetCancelled(): void;
201
203
  convertPositionToOffset(fileName: string, position: Position): number;
@@ -39,9 +39,11 @@ const assert_1 = __importDefault(require("assert"));
39
39
  const path = __importStar(require("path"));
40
40
  const vscode_languageserver_1 = require("vscode-languageserver");
41
41
  const backgroundAnalysisProgram_1 = require("../../../analyzer/backgroundAnalysisProgram");
42
+ const packageTypeVerifier_1 = require("../../../analyzer/packageTypeVerifier");
42
43
  const parseTreeUtils_1 = require("../../../analyzer/parseTreeUtils");
43
44
  const service_1 = require("../../../analyzer/service");
44
45
  const commandResult_1 = require("../../../commands/commandResult");
46
+ const commandLineOptions_1 = require("../../../common/commandLineOptions");
45
47
  const configOptions_1 = require("../../../common/configOptions");
46
48
  const console_1 = require("../../../common/console");
47
49
  const core_1 = require("../../../common/core");
@@ -974,6 +976,20 @@ class TestState {
974
976
  (0, workspaceEditTestUtils_1.verifyWorkspaceEdit)((0, workspaceEditUtils_1.convertToWorkspaceEdit)({ edits: expected.changes, fileOperations: [] }), actual !== null && actual !== void 0 ? actual : { documentChanges: [] });
975
977
  }
976
978
  }
979
+ verifyTypeVerifierResults(packageName, ignoreUnknownTypesFromImports, verboseOutput, expected) {
980
+ const commandLineOptions = new commandLineOptions_1.CommandLineOptions(this.configOptions.projectRoot.getFilePath(),
981
+ /* fromVsCodeExtension */ false);
982
+ commandLineOptions.verboseOutput = verboseOutput;
983
+ const verifier = new packageTypeVerifier_1.PackageTypeVerifier(this.serviceProvider, testAccessHost, commandLineOptions, packageName, ignoreUnknownTypesFromImports);
984
+ const report = verifier.verify();
985
+ assert_1.default.strictEqual(report.generalDiagnostics.length, expected.generalDiagnostics.length);
986
+ assert_1.default.strictEqual(report.missingClassDocStringCount, expected.missingClassDocStringCount);
987
+ assert_1.default.strictEqual(report.missingDefaultParamCount, expected.missingDefaultParamCount);
988
+ assert_1.default.strictEqual(report.missingFunctionDocStringCount, expected.missingFunctionDocStringCount);
989
+ assert_1.default.strictEqual(report.moduleName, expected.moduleName);
990
+ assert_1.default.strictEqual(report.packageName, expected.packageName);
991
+ assert_1.default.deepStrictEqual(Array.from(report.symbols.keys()), Array.from(expected.symbols.keys()));
992
+ }
977
993
  setCancelled(numberOfCalls) {
978
994
  this._cancellationToken.setCancelled(numberOfCalls);
979
995
  }