@zzzen/pyright-internal 1.2.0-dev.20220911 → 1.2.0-dev.20220925

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 (77) hide show
  1. package/dist/analyzer/binder.js +11 -6
  2. package/dist/analyzer/binder.js.map +1 -1
  3. package/dist/analyzer/checker.js +10 -4
  4. package/dist/analyzer/checker.js.map +1 -1
  5. package/dist/analyzer/parseTreeUtils.js +0 -6
  6. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  7. package/dist/analyzer/patternMatching.js +3 -2
  8. package/dist/analyzer/patternMatching.js.map +1 -1
  9. package/dist/analyzer/service.js +2 -2
  10. package/dist/analyzer/service.js.map +1 -1
  11. package/dist/analyzer/tracePrinter.js +3 -2
  12. package/dist/analyzer/tracePrinter.js.map +1 -1
  13. package/dist/analyzer/typeEvaluator.js +122 -54
  14. package/dist/analyzer/typeEvaluator.js.map +1 -1
  15. package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
  16. package/dist/analyzer/typeEvaluatorTypes.js +4 -0
  17. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  18. package/dist/analyzer/typeEvaluatorWithTracker.d.ts +1 -2
  19. package/dist/analyzer/typeEvaluatorWithTracker.js +39 -103
  20. package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
  21. package/dist/analyzer/typeGuards.js +4 -1
  22. package/dist/analyzer/typeGuards.js.map +1 -1
  23. package/dist/analyzer/typeUtils.js +16 -8
  24. package/dist/analyzer/typeUtils.js.map +1 -1
  25. package/dist/analyzer/types.d.ts +2 -0
  26. package/dist/analyzer/types.js +8 -0
  27. package/dist/analyzer/types.js.map +1 -1
  28. package/dist/common/logTracker.d.ts +1 -0
  29. package/dist/common/logTracker.js +4 -0
  30. package/dist/common/logTracker.js.map +1 -1
  31. package/dist/common/timing.d.ts +1 -1
  32. package/dist/common/timing.js +3 -3
  33. package/dist/common/timing.js.map +1 -1
  34. package/dist/languageService/completionProvider.js +1 -0
  35. package/dist/languageService/completionProvider.js.map +1 -1
  36. package/dist/languageService/indentationUtils.d.ts +5 -0
  37. package/dist/languageService/indentationUtils.js +68 -27
  38. package/dist/languageService/indentationUtils.js.map +1 -1
  39. package/dist/languageService/insertionPointUtils.d.ts +2 -2
  40. package/dist/languageService/insertionPointUtils.js +1 -1
  41. package/dist/languageService/insertionPointUtils.js.map +1 -1
  42. package/dist/languageService/signatureHelpProvider.js +2 -1
  43. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  44. package/dist/localization/localize.d.ts +4 -0
  45. package/dist/localization/localize.js +1 -0
  46. package/dist/localization/localize.js.map +1 -1
  47. package/dist/localization/package.nls.en-us.json +2 -1
  48. package/dist/parser/parser.js +43 -46
  49. package/dist/parser/parser.js.map +1 -1
  50. package/dist/parser/tokenizer.d.ts +1 -1
  51. package/dist/parser/tokenizer.js +46 -20
  52. package/dist/parser/tokenizer.js.map +1 -1
  53. package/dist/parser/tokenizerTypes.d.ts +3 -1
  54. package/dist/parser/tokenizerTypes.js +2 -0
  55. package/dist/parser/tokenizerTypes.js.map +1 -1
  56. package/dist/tests/fourslash/hover.variable.docString.fourslash.js +3 -0
  57. package/dist/tests/fourslash/hover.variable.docString.fourslash.js.map +1 -1
  58. package/dist/tests/fourslash/signature.paramspec.fourslash.d.ts +1 -0
  59. package/dist/tests/fourslash/signature.paramspec.fourslash.js +30 -0
  60. package/dist/tests/fourslash/signature.paramspec.fourslash.js.map +1 -0
  61. package/dist/tests/ipythonMode.test.js +47 -4
  62. package/dist/tests/ipythonMode.test.js.map +1 -1
  63. package/dist/tests/logger.test.d.ts +1 -0
  64. package/dist/tests/logger.test.js +99 -0
  65. package/dist/tests/logger.test.js.map +1 -0
  66. package/dist/tests/parser.test.js +2 -2
  67. package/dist/tests/testUtils.d.ts +4 -1
  68. package/dist/tests/testUtils.js +10 -4
  69. package/dist/tests/testUtils.js.map +1 -1
  70. package/dist/tests/tokenizer.test.js +3 -0
  71. package/dist/tests/tokenizer.test.js.map +1 -1
  72. package/dist/tests/typeEvaluator1.test.js +2 -2
  73. package/dist/tests/typeEvaluator2.test.js +4 -0
  74. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  75. package/dist/tests/typeEvaluator3.test.js +4 -0
  76. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  77. package/package.json +3 -3
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /*
3
+ * logger.test.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * Unit tests for logger.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const assert = __importStar(require("assert"));
30
+ const configOptions_1 = require("../common/configOptions");
31
+ const console_1 = require("../common/console");
32
+ const timing_1 = require("../common/timing");
33
+ const TestUtils = __importStar(require("./testUtils"));
34
+ class TestConsole {
35
+ constructor() {
36
+ this.errors = [];
37
+ this.warnings = [];
38
+ this.infos = [];
39
+ this.logs = [];
40
+ }
41
+ error(message) {
42
+ this.errors.push(message);
43
+ }
44
+ warn(message) {
45
+ this.warnings.push(message);
46
+ }
47
+ info(message) {
48
+ this.infos.push(message);
49
+ }
50
+ log(message) {
51
+ this.logs.push(message);
52
+ }
53
+ clear() {
54
+ this.logs = [];
55
+ this.errors = [];
56
+ this.warnings = [];
57
+ this.infos = [];
58
+ }
59
+ }
60
+ describe('TypeEvaluatorWithTracker tests', () => {
61
+ const consoleInterface = new TestConsole();
62
+ const console = new console_1.ConsoleWithLogLevel(consoleInterface);
63
+ const config = new configOptions_1.ConfigOptions('.');
64
+ beforeEach(() => {
65
+ consoleInterface.clear();
66
+ });
67
+ afterEach(() => {
68
+ consoleInterface.clear();
69
+ timing_1.timingStats.typeEvaluationTime.callCount = 0;
70
+ });
71
+ test('Log generated', () => {
72
+ config.logTypeEvaluationTime = true;
73
+ console.level = console_1.LogLevel.Log;
74
+ TestUtils.typeAnalyzeSampleFiles(['badToken1.py'], config, console);
75
+ assert.ok(consoleInterface.logs.length > 10, `No calls logged`);
76
+ assert.ok(consoleInterface.logs.some((s) => s.includes('evaluateTypesForStatement')), `Inner evaluateTypesForStatement not found`);
77
+ });
78
+ test('Log not generated when level is error', () => {
79
+ config.logTypeEvaluationTime = true;
80
+ console.level = console_1.LogLevel.Error;
81
+ TestUtils.typeAnalyzeSampleFiles(['badToken1.py'], config, console);
82
+ assert.equal(consoleInterface.logs.length, 0, `Should not have any logs when logging level is error`);
83
+ });
84
+ test('Inner log not generated when eval is turned off', () => {
85
+ config.logTypeEvaluationTime = false;
86
+ console.level = console_1.LogLevel.Log;
87
+ TestUtils.typeAnalyzeSampleFiles(['badToken1.py'], config, console);
88
+ assert.equal(consoleInterface.logs.some((s) => s.includes('evaluateTypesForStatement')), false, `Inner evaluateTypesForStatement is being logged when it shouldnt`);
89
+ assert.ok(timing_1.timingStats.typeEvaluationTime.callCount > 1, `Should be tracking timing when not logging but not debugging`);
90
+ });
91
+ test('Timing is not captured in debug mode', () => {
92
+ process.execArgv.push('inspect');
93
+ config.logTypeEvaluationTime = false;
94
+ console.level = console_1.LogLevel.Log;
95
+ TestUtils.typeAnalyzeSampleFiles(['badToken1.py'], config, console);
96
+ assert.equal(timing_1.timingStats.typeEvaluationTime.callCount, 0, `Should not be tracking call counts when debugging`);
97
+ });
98
+ });
99
+ //# sourceMappingURL=logger.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../../../src/tests/logger.test.ts"],"names":[],"mappings":"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"}
@@ -74,9 +74,9 @@ test('ExpressionWrappedInParens', () => {
74
74
  assert.equal(parseResults.parseTree.statements[0].nodeType, 47 /* StatementList */);
75
75
  const statementList = parseResults.parseTree.statements[0];
76
76
  assert.equal(statementList.statements.length, 1);
77
- // length of node should exclude parens
77
+ // length of node should include parens
78
78
  assert.equal(statementList.statements[0].nodeType, 38 /* Name */);
79
- assert.equal(statementList.statements[0].length, 3);
79
+ assert.equal(statementList.statements[0].length, 5);
80
80
  });
81
81
  test('MaxParseDepth1', () => {
82
82
  const diagSink = new diagnosticSink_1.DiagnosticSink();
@@ -1,5 +1,7 @@
1
1
  import { AnalyzerFileInfo } from '../analyzer/analyzerFileInfo';
2
+ import { Program } from '../analyzer/program';
2
3
  import { ConfigOptions, ExecutionEnvironment } from '../common/configOptions';
4
+ import { ConsoleWithLogLevel } from '../common/console';
3
5
  import { Diagnostic } from '../common/diagnostic';
4
6
  import { DiagnosticSink } from '../common/diagnosticSink';
5
7
  import { ParseOptions, ParseResults } from '../parser/parser';
@@ -23,6 +25,7 @@ export declare function parseText(textToParse: string, diagSink: DiagnosticSink,
23
25
  export declare function parseSampleFile(fileName: string, diagSink: DiagnosticSink, execEnvironment?: ExecutionEnvironment): FileParseResult;
24
26
  export declare function buildAnalyzerFileInfo(filePath: string, fileContents: string, parseResults: ParseResults, configOptions: ConfigOptions): AnalyzerFileInfo;
25
27
  export declare function bindSampleFile(fileName: string, configOptions?: ConfigOptions): FileAnalysisResult;
26
- export declare function typeAnalyzeSampleFiles(fileNames: string[], configOptions?: ConfigOptions): FileAnalysisResult[];
28
+ export declare function typeAnalyzeSampleFiles(fileNames: string[], configOptions?: ConfigOptions, console?: ConsoleWithLogLevel): FileAnalysisResult[];
29
+ export declare function getAnalysisResults(program: Program, filePaths: string[], configOptions?: ConfigOptions): FileAnalysisResult[];
27
30
  export declare function printDiagnostics(fileResults: FileAnalysisResult): void;
28
31
  export declare function validateResults(results: FileAnalysisResult[], errorCount: number, warningCount?: number, infoCount?: number, unusedCode?: number, unreachableCode?: number, deprecated?: number): void;
@@ -27,7 +27,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
27
27
  return result;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.validateResults = exports.printDiagnostics = exports.typeAnalyzeSampleFiles = exports.bindSampleFile = exports.buildAnalyzerFileInfo = exports.parseSampleFile = exports.parseText = exports.readSampleFile = exports.resolveSampleFilePath = void 0;
30
+ exports.validateResults = exports.printDiagnostics = exports.getAnalysisResults = exports.typeAnalyzeSampleFiles = exports.bindSampleFile = exports.buildAnalyzerFileInfo = exports.parseSampleFile = exports.parseText = exports.readSampleFile = exports.resolveSampleFilePath = void 0;
31
31
  const assert = __importStar(require("assert"));
32
32
  const fs = __importStar(require("fs"));
33
33
  const path = __importStar(require("path"));
@@ -129,12 +129,12 @@ function bindSampleFile(fileName, configOptions = new configOptions_1.ConfigOpti
129
129
  };
130
130
  }
131
131
  exports.bindSampleFile = bindSampleFile;
132
- function typeAnalyzeSampleFiles(fileNames, configOptions = new configOptions_1.ConfigOptions('.')) {
132
+ function typeAnalyzeSampleFiles(fileNames, configOptions = new configOptions_1.ConfigOptions('.'), console) {
133
133
  // Always enable "test mode".
134
134
  configOptions.internalTestMode = true;
135
135
  const fs = (0, realFileSystem_1.createFromRealFileSystem)();
136
136
  const importResolver = new importResolver_1.ImportResolver(fs, configOptions, new fullAccessHost_1.FullAccessHost(fs));
137
- const program = new program_1.Program(importResolver, configOptions);
137
+ const program = new program_1.Program(importResolver, configOptions, console);
138
138
  const filePaths = fileNames.map((name) => resolveSampleFilePath(name));
139
139
  program.setTrackedFiles(filePaths);
140
140
  // Set a "pre-check callback" so we can evaluate the types of each NameNode
@@ -144,6 +144,12 @@ 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);
148
+ }
149
+ exports.typeAnalyzeSampleFiles = typeAnalyzeSampleFiles;
150
+ function getAnalysisResults(program, filePaths, configOptions = new configOptions_1.ConfigOptions('.')) {
151
+ // Always enable "test mode".
152
+ configOptions.internalTestMode = true;
147
153
  while (program.analyze()) {
148
154
  // Continue to call analyze until it completes. Since we're not
149
155
  // specifying a timeout, it should complete the first time.
@@ -180,7 +186,7 @@ function typeAnalyzeSampleFiles(fileNames, configOptions = new configOptions_1.C
180
186
  }
181
187
  });
182
188
  }
183
- exports.typeAnalyzeSampleFiles = typeAnalyzeSampleFiles;
189
+ exports.getAnalysisResults = getAnalysisResults;
184
190
  function printDiagnostics(fileResults) {
185
191
  if (fileResults.errors.length > 0) {
186
192
  console.error(`Errors in ${fileResults.filePath}:`);
@@ -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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"}
@@ -289,16 +289,19 @@ test('IndentDedent', () => {
289
289
  assert_1.default.equal(results.tokens.getItemAt(1).type, 2 /* NewLine */);
290
290
  assert_1.default.equal(results.tokens.getItemAt(2).type, 3 /* Indent */);
291
291
  assert_1.default.equal(results.tokens.getItemAt(2).indentAmount, 2);
292
+ assert_1.default.equal(results.tokens.getItemAt(2).length, 2);
292
293
  assert_1.default.equal(results.tokens.getItemAt(3).type, 7 /* Identifier */);
293
294
  assert_1.default.equal(results.tokens.getItemAt(4).type, 2 /* NewLine */);
294
295
  assert_1.default.equal(results.tokens.getItemAt(5).type, 7 /* Identifier */);
295
296
  assert_1.default.equal(results.tokens.getItemAt(6).type, 2 /* NewLine */);
296
297
  assert_1.default.equal(results.tokens.getItemAt(7).type, 3 /* Indent */);
297
298
  assert_1.default.equal(results.tokens.getItemAt(7).indentAmount, 8);
299
+ assert_1.default.equal(results.tokens.getItemAt(7).length, 3);
298
300
  assert_1.default.equal(results.tokens.getItemAt(8).type, 7 /* Identifier */);
299
301
  assert_1.default.equal(results.tokens.getItemAt(9).type, 2 /* NewLine */);
300
302
  assert_1.default.equal(results.tokens.getItemAt(10).type, 3 /* Indent */);
301
303
  assert_1.default.equal(results.tokens.getItemAt(10).isIndentAmbiguous, true);
304
+ assert_1.default.equal(results.tokens.getItemAt(10).length, 1);
302
305
  assert_1.default.equal(results.tokens.getItemAt(11).type, 7 /* Identifier */);
303
306
  assert_1.default.equal(results.tokens.getItemAt(12).type, 2 /* NewLine */);
304
307
  assert_1.default.equal(results.tokens.getItemAt(13).type, 4 /* Dedent */);