@zzzen/pyright-internal 1.2.0-dev.20221002 → 1.2.0-dev.20221016

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 (78) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +4 -2
  2. package/dist/analyzer/backgroundAnalysisProgram.js +7 -2
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +18 -1
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/cacheManager.d.ts +14 -0
  7. package/dist/analyzer/cacheManager.js +65 -0
  8. package/dist/analyzer/cacheManager.js.map +1 -0
  9. package/dist/analyzer/checker.d.ts +1 -0
  10. package/dist/analyzer/checker.js +35 -0
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.d.ts +6 -1
  13. package/dist/analyzer/codeFlowEngine.js +102 -87
  14. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +1 -1
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/importResolver.d.ts +1 -0
  18. package/dist/analyzer/importResolver.js +3 -2
  19. package/dist/analyzer/importResolver.js.map +1 -1
  20. package/dist/analyzer/packageTypeVerifier.js +4 -4
  21. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  22. package/dist/analyzer/program.d.ts +10 -2
  23. package/dist/analyzer/program.js +67 -44
  24. package/dist/analyzer/program.js.map +1 -1
  25. package/dist/analyzer/service.d.ts +2 -0
  26. package/dist/analyzer/service.js +12 -3
  27. package/dist/analyzer/service.js.map +1 -1
  28. package/dist/analyzer/sourceFile.d.ts +1 -1
  29. package/dist/analyzer/sourceFile.js +4 -4
  30. package/dist/analyzer/sourceFile.js.map +1 -1
  31. package/dist/analyzer/sourceMapper.d.ts +6 -3
  32. package/dist/analyzer/sourceMapper.js +38 -14
  33. package/dist/analyzer/sourceMapper.js.map +1 -1
  34. package/dist/analyzer/sourceMapperUtils.d.ts +9 -0
  35. package/dist/analyzer/sourceMapperUtils.js +45 -0
  36. package/dist/analyzer/sourceMapperUtils.js.map +1 -0
  37. package/dist/analyzer/typeEvaluator.js +59 -42
  38. package/dist/analyzer/typeEvaluator.js.map +1 -1
  39. package/dist/analyzer/typeUtils.d.ts +1 -1
  40. package/dist/analyzer/typeUtils.js +4 -36
  41. package/dist/analyzer/typeUtils.js.map +1 -1
  42. package/dist/analyzer/types.d.ts +3 -1
  43. package/dist/analyzer/types.js +6 -0
  44. package/dist/analyzer/types.js.map +1 -1
  45. package/dist/backgroundAnalysisBase.js +1 -0
  46. package/dist/backgroundAnalysisBase.js.map +1 -1
  47. package/dist/languageServerBase.d.ts +3 -1
  48. package/dist/languageServerBase.js +12 -8
  49. package/dist/languageServerBase.js.map +1 -1
  50. package/dist/localization/localize.d.ts +4 -0
  51. package/dist/localization/localize.js +2 -0
  52. package/dist/localization/localize.js.map +1 -1
  53. package/dist/localization/package.nls.en-us.json +2 -0
  54. package/dist/parser/parser.js +21 -10
  55. package/dist/parser/parser.js.map +1 -1
  56. package/dist/tests/fourslash/findDefinitions.builtinClass.fourslash.js +8 -6
  57. package/dist/tests/fourslash/findDefinitions.builtinClass.fourslash.js.map +1 -1
  58. package/dist/tests/harness/fourslash/runner.js +1 -0
  59. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  60. package/dist/tests/harness/fourslash/testState.d.ts +1 -0
  61. package/dist/tests/harness/fourslash/testState.js +3 -0
  62. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  63. package/dist/tests/parser.test.js +22 -0
  64. package/dist/tests/parser.test.js.map +1 -1
  65. package/dist/tests/sourceMapperUtils.test.d.ts +1 -0
  66. package/dist/tests/sourceMapperUtils.test.js +103 -0
  67. package/dist/tests/sourceMapperUtils.test.js.map +1 -0
  68. package/dist/tests/testUtils.js +3 -1
  69. package/dist/tests/testUtils.js.map +1 -1
  70. package/dist/tests/typeEvaluator2.test.js +8 -0
  71. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  72. package/dist/tests/typeEvaluator3.test.js +16 -0
  73. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  74. package/dist/tests/typeEvaluator4.test.js +4 -0
  75. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  76. package/dist/workspaceMap.js +2 -3
  77. package/dist/workspaceMap.js.map +1 -1
  78. package/package.json +1 -1
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
  /// <reference path="fourslash.ts" />
3
3
  // @filename: test.py
4
- //// from typing import [|/*marker*/Union|]
5
- // @filename: typing.py
4
+ //// from operator import itemgetter
5
+ //// x = 4
6
+ //// itemgetter().[|/*marker*/__call__|](x)
7
+ // @filename: operator.py
6
8
  // @library: true
7
- //// class _Union:
8
- //// pass
9
+ //// class itemgetter:
10
+ //// def [|__call__|](self, obj):
11
+ //// pass
9
12
  ////
10
- //// [|Union|] = _Union()
11
13
  {
12
14
  const rangeMap = helper.getRangesByText();
13
15
  helper.verifyFindDefinitions({
14
16
  marker: {
15
17
  definitions: rangeMap
16
- .get('Union')
18
+ .get('__call__')
17
19
  .filter((r) => !r.marker)
18
20
  .map((r) => {
19
21
  return { path: r.fileName, range: helper.convertPositionRange(r) };
@@ -1 +1 @@
1
- {"version":3,"file":"findDefinitions.builtinClass.fourslash.js","sourceRoot":"","sources":["../../../../src/tests/fourslash/findDefinitions.builtinClass.fourslash.ts"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,qBAAqB;AACrB,2CAA2C;AAE3C,uBAAuB;AACvB,iBAAiB;AACjB,kBAAkB;AAClB,aAAa;AACb,IAAI;AACJ,yBAAyB;AAEzB;IACI,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAE1C,MAAM,CAAC,qBAAqB,CACxB;QACI,MAAM,EAAE;YACJ,WAAW,EAAE,QAAQ;iBAChB,GAAG,CAAC,OAAO,CAAE;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACP,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,CAAC;SACT;KACJ,EACD,cAAc,CACjB,CAAC;CACL"}
1
+ {"version":3,"file":"findDefinitions.builtinClass.fourslash.js","sourceRoot":"","sources":["../../../../src/tests/fourslash/findDefinitions.builtinClass.fourslash.ts"],"names":[],"mappings":";AAAA,qCAAqC;AAErC,qBAAqB;AACrB,oCAAoC;AACpC,UAAU;AACV,2CAA2C;AAE3C,yBAAyB;AACzB,iBAAiB;AACjB,sBAAsB;AACtB,qCAAqC;AACrC,iBAAiB;AACjB,IAAI;AAEJ;IACI,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAE1C,MAAM,CAAC,qBAAqB,CACxB;QACI,MAAM,EAAE;YACJ,WAAW,EAAE,QAAQ;iBAChB,GAAG,CAAC,UAAU,CAAE;iBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACP,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,CAAC,CAAC;SACT;KACJ,EACD,cAAc,CACjB,CAAC;CACL"}
@@ -69,6 +69,7 @@ function runFourSlashTestContent(basePath, fileName, content, cb, mountPaths, ho
69
69
  throw new Error(`Syntax error in ${absoluteBasePath}: ${output.diagnostics[0].messageText}`);
70
70
  }
71
71
  runCode(output.outputText, state, cb);
72
+ state.dispose();
72
73
  }
73
74
  exports.runFourSlashTestContent = runFourSlashTestContent;
74
75
  async function runCode(code, state, cb) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../src/tests/harness/fourslash/runner.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAEjC,yDAAyD;AACzD,kDAAoC;AACpC,uDAAkD;AAElD,2CAA8D;AAC9D,yDAA4C;AAS5C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC5B,QAAgB,EAChB,QAAgB,EAChB,EAAsB,EACtB,UAAgC,EAChC,oBAA2C,EAC3C,gBAAmC;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC;IAC9C,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AACjH,CAAC;AAVD,4CAUC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CACnC,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,EAAsB,EACtB,UAAgC,EAChC,oBAA2C,EAC3C,gBAAmC;IAEnC,+DAA+D;IAC/D,MAAM,gBAAgB,GAAG,IAAA,wBAAY,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAA,wBAAY,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAErD,yCAAyC;IACzC,MAAM,QAAQ,GAAG,IAAA,+BAAa,EAAC,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC5E,MAAM,KAAK,GACP,gBAAgB,KAAK,SAAS;QAC1B,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,CAAC;QAChF,CAAC,CAAC,IAAI,qBAAS,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;QACvC,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE;KACtD,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,WAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,mBAAmB,gBAAgB,KAAK,MAAM,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;KACjG;IAED,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AA5BD,0DA4BC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,KAAgB,EAAE,EAAsB;IACzE,+BAA+B;IAC/B,IAAI;QACA,MAAM,WAAW,GAAG;EAC1B,IAAI;GACH,CAAC;QACI,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,yBAAM,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,QAAQ,CAAC,EAAE,CAAC,CAAC;KAChB;IAED,SAAS,QAAQ,CAAC,GAAG,IAAW;QAC5B,IAAI,EAAE,EAAE;YACJ,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;SACf;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../src/tests/harness/fourslash/runner.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAEjC,yDAAyD;AACzD,kDAAoC;AACpC,uDAAkD;AAElD,2CAA8D;AAC9D,yDAA4C;AAS5C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC5B,QAAgB,EAChB,QAAgB,EAChB,EAAsB,EACtB,UAAgC,EAChC,oBAA2C,EAC3C,gBAAmC;IAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC;IAC9C,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AACjH,CAAC;AAVD,4CAUC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CACnC,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,EAAsB,EACtB,UAAgC,EAChC,oBAA2C,EAC3C,gBAAmC;IAEnC,+DAA+D;IAC/D,MAAM,gBAAgB,GAAG,IAAA,wBAAY,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,IAAA,wBAAY,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAErD,yCAAyC;IACzC,MAAM,QAAQ,GAAG,IAAA,+BAAa,EAAC,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAC5E,MAAM,KAAK,GACP,gBAAgB,KAAK,SAAS;QAC1B,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,CAAC;QAChF,CAAC,CAAC,IAAI,qBAAS,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE;QACvC,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE;KACtD,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,WAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,mBAAmB,gBAAgB,KAAK,MAAM,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;KACjG;IAED,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtC,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,CAAC;AA9BD,0DA8BC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,KAAgB,EAAE,EAAsB;IACzE,+BAA+B;IAC/B,IAAI;QACA,MAAM,WAAW,GAAG;EAC1B,IAAI;GACH,CAAC;QACI,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,yBAAM,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;KACd;IAAC,OAAO,EAAE,EAAE;QACT,QAAQ,CAAC,EAAE,CAAC,CAAC;KAChB;IAED,SAAS,QAAQ,CAAC,GAAG,IAAW;QAC5B,IAAI,EAAE,EAAE;YACJ,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;SACf;IACL,CAAC;AACL,CAAC"}
@@ -40,6 +40,7 @@ export declare class TestState {
40
40
  get importResolver(): ImportResolver;
41
41
  get configOptions(): ConfigOptions;
42
42
  get program(): Program;
43
+ dispose(): void;
43
44
  cwd(): string;
44
45
  goToMarker(nameOrMarker?: string | Marker): void;
45
46
  goToEachMarker(markers: readonly Marker[], action: (marker: Marker, index: number) => void): void;
@@ -126,6 +126,9 @@ class TestState {
126
126
  get program() {
127
127
  return this.workspace.serviceInstance.test_program;
128
128
  }
129
+ dispose() {
130
+ this.workspace.serviceInstance.dispose();
131
+ }
129
132
  cwd() {
130
133
  return this.testFS.cwd();
131
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testState.js","sourceRoot":"","sources":["../../../../../src/tests/harness/fourslash/testState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testState.js","sourceRoot":"","sources":["../../../../../src/tests/harness/fourslash/testState.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  const assert = __importStar(require("assert"));
32
+ const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
32
33
  const diagnosticSink_1 = require("../common/diagnosticSink");
33
34
  const textRange_1 = require("../common/textRange");
34
35
  const testState_1 = require("./harness/fourslash/testState");
@@ -98,4 +99,25 @@ test('ModuleName range', () => {
98
99
  assert.strictEqual(node.start, expectedRange === null || expectedRange === void 0 ? void 0 : expectedRange.pos);
99
100
  assert.strictEqual(textRange_1.TextRange.getEnd(node), expectedRange === null || expectedRange === void 0 ? void 0 : expectedRange.end);
100
101
  });
102
+ test('ParserRecovery1', () => {
103
+ const diagSink = new diagnosticSink_1.DiagnosticSink();
104
+ const parseResults = TestUtils.parseSampleFile('parserRecovery1.py', diagSink).parseResults;
105
+ const node = (0, parseTreeUtils_1.findNodeByOffset)(parseResults.parseTree, parseResults.text.length - 1);
106
+ const functionNode = (0, parseTreeUtils_1.getFirstAncestorOrSelfOfKind)(node, 28 /* Function */);
107
+ assert.equal(functionNode.parent.nodeType, 36 /* Module */);
108
+ });
109
+ test('ParserRecovery2', () => {
110
+ const diagSink = new diagnosticSink_1.DiagnosticSink();
111
+ const parseResults = TestUtils.parseSampleFile('parserRecovery2.py', diagSink).parseResults;
112
+ const node = (0, parseTreeUtils_1.findNodeByOffset)(parseResults.parseTree, parseResults.text.length - 1);
113
+ const functionNode = (0, parseTreeUtils_1.getFirstAncestorOrSelfOfKind)(node, 28 /* Function */);
114
+ assert.equal(functionNode.parent.nodeType, 50 /* Suite */);
115
+ });
116
+ test('ParserRecovery3', () => {
117
+ const diagSink = new diagnosticSink_1.DiagnosticSink();
118
+ const parseResults = TestUtils.parseSampleFile('parserRecovery3.py', diagSink).parseResults;
119
+ const node = (0, parseTreeUtils_1.findNodeByOffset)(parseResults.parseTree, parseResults.text.length - 1);
120
+ const functionNode = (0, parseTreeUtils_1.getFirstAncestorOrSelfOfKind)(node, 28 /* Function */);
121
+ assert.equal(functionNode.parent.nodeType, 36 /* Module */);
122
+ });
101
123
  //# sourceMappingURL=parser.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../../src/tests/parser.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../../src/tests/parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ /*
23
+ * sourceFile.test.ts
24
+ * Copyright (c) Microsoft Corporation.
25
+ * Licensed under the MIT license.
26
+ *
27
+ * Unit tests for pyright sourceMapperUtils module.
28
+ */
29
+ const assert = __importStar(require("assert"));
30
+ const sourceMapperUtils_1 = require("../analyzer/sourceMapperUtils");
31
+ describe('BuildImportTree', () => {
32
+ test('Simple', () => {
33
+ const results = (0, sourceMapperUtils_1.buildImportTree)('A', 'C', (f) => {
34
+ switch (f) {
35
+ case 'C':
36
+ return ['B'];
37
+ case 'B':
38
+ return ['A'];
39
+ default:
40
+ break;
41
+ }
42
+ return [];
43
+ });
44
+ assert.deepEqual(results, ['C', 'B']);
45
+ });
46
+ test('Recursion', () => {
47
+ const results = (0, sourceMapperUtils_1.buildImportTree)('A', 'E', (f) => {
48
+ switch (f) {
49
+ case 'E':
50
+ return ['D'];
51
+ case 'D':
52
+ return ['C', 'B'];
53
+ case 'C':
54
+ return ['D'];
55
+ case 'B':
56
+ return ['A'];
57
+ default:
58
+ break;
59
+ }
60
+ return [];
61
+ });
62
+ assert.deepEqual(results, ['E', 'D', 'B']);
63
+ });
64
+ test('Multiple Paths', () => {
65
+ const results = (0, sourceMapperUtils_1.buildImportTree)('A', 'G', (f) => {
66
+ switch (f) {
67
+ case 'G':
68
+ return ['F', 'H', 'I'];
69
+ case 'F':
70
+ return ['D', 'E'];
71
+ case 'D':
72
+ return ['C', 'B'];
73
+ case 'C':
74
+ return ['E'];
75
+ case 'B':
76
+ return ['A'];
77
+ default:
78
+ break;
79
+ }
80
+ return [];
81
+ });
82
+ assert.deepEqual(results, ['G', 'F', 'D', 'B']);
83
+ });
84
+ test('No paths', () => {
85
+ const results = (0, sourceMapperUtils_1.buildImportTree)('A', 'G', (f) => {
86
+ switch (f) {
87
+ case 'G':
88
+ return ['F', 'H', 'I'];
89
+ case 'F':
90
+ return ['D', 'E'];
91
+ case 'D':
92
+ return ['C', 'B'];
93
+ case 'C':
94
+ return ['E'];
95
+ default:
96
+ break;
97
+ }
98
+ return [];
99
+ });
100
+ assert.deepEqual(results, ['G']);
101
+ });
102
+ });
103
+ //# sourceMappingURL=sourceMapperUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceMapperUtils.test.js","sourceRoot":"","sources":["../../../src/tests/sourceMapperUtils.test.ts"],"names":[],"mappings":"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"}
@@ -144,7 +144,9 @@ function typeAnalyzeSampleFiles(fileNames, configOptions = new configOptions_1.C
144
144
  const nameTypeWalker = new testWalker_1.NameTypeWalker(evaluator);
145
145
  nameTypeWalker.walk(parseResults.parseTree);
146
146
  });
147
- return getAnalysisResults(program, filePaths, configOptions);
147
+ const results = getAnalysisResults(program, filePaths, configOptions);
148
+ program.dispose();
149
+ return results;
148
150
  }
149
151
  exports.typeAnalyzeSampleFiles = typeAnalyzeSampleFiles;
150
152
  function getAnalysisResults(program, filePaths, configOptions = new configOptions_1.ConfigOptions('.')) {
@@ -1 +1 @@
1
- {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../../src/tests/testUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../../src/tests/testUtils.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,10 @@ test('CallbackProtocol8', () => {
63
63
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['callbackProtocol8.py']);
64
64
  TestUtils.validateResults(analysisResults, 0);
65
65
  });
66
+ test('CallbackProtocol9', () => {
67
+ const analysisResults = TestUtils.typeAnalyzeSampleFiles(['callbackProtocol9.py']);
68
+ TestUtils.validateResults(analysisResults, 2);
69
+ });
66
70
  test('Assignment1', () => {
67
71
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['assignment1.py']);
68
72
  TestUtils.validateResults(analysisResults, 8);
@@ -674,6 +678,10 @@ test('GenericTypes97', () => {
674
678
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['genericTypes97.py']);
675
679
  TestUtils.validateResults(analysisResults, 4);
676
680
  });
681
+ test('GenericTypes98', () => {
682
+ const analysisResults = TestUtils.typeAnalyzeSampleFiles(['genericTypes98.py']);
683
+ TestUtils.validateResults(analysisResults, 0);
684
+ });
677
685
  test('Protocol1', () => {
678
686
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['protocol1.py']);
679
687
  TestUtils.validateResults(analysisResults, 6);