@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.
- package/dist/analyzer/binder.js +11 -6
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +10 -4
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +0 -6
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +3 -2
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/service.js +2 -2
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +3 -2
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +122 -54
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +1 -0
- package/dist/analyzer/typeEvaluatorTypes.js +4 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeEvaluatorWithTracker.d.ts +1 -2
- package/dist/analyzer/typeEvaluatorWithTracker.js +39 -103
- package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
- package/dist/analyzer/typeGuards.js +4 -1
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.js +16 -8
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +2 -0
- package/dist/analyzer/types.js +8 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/logTracker.d.ts +1 -0
- package/dist/common/logTracker.js +4 -0
- package/dist/common/logTracker.js.map +1 -1
- package/dist/common/timing.d.ts +1 -1
- package/dist/common/timing.js +3 -3
- package/dist/common/timing.js.map +1 -1
- package/dist/languageService/completionProvider.js +1 -0
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/indentationUtils.d.ts +5 -0
- package/dist/languageService/indentationUtils.js +68 -27
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/insertionPointUtils.d.ts +2 -2
- package/dist/languageService/insertionPointUtils.js +1 -1
- package/dist/languageService/insertionPointUtils.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.js +2 -1
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +4 -0
- package/dist/localization/localize.js +1 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -1
- package/dist/parser/parser.js +43 -46
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.d.ts +1 -1
- package/dist/parser/tokenizer.js +46 -20
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.d.ts +3 -1
- package/dist/parser/tokenizerTypes.js +2 -0
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/tests/fourslash/hover.variable.docString.fourslash.js +3 -0
- package/dist/tests/fourslash/hover.variable.docString.fourslash.js.map +1 -1
- package/dist/tests/fourslash/signature.paramspec.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/signature.paramspec.fourslash.js +30 -0
- package/dist/tests/fourslash/signature.paramspec.fourslash.js.map +1 -0
- package/dist/tests/ipythonMode.test.js +47 -4
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/logger.test.d.ts +1 -0
- package/dist/tests/logger.test.js +99 -0
- package/dist/tests/logger.test.js.map +1 -0
- package/dist/tests/parser.test.js +2 -2
- package/dist/tests/testUtils.d.ts +4 -1
- package/dist/tests/testUtils.js +10 -4
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/tokenizer.test.js +3 -0
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +2 -2
- package/dist/tests/typeEvaluator2.test.js +4 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +4 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- 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
|
77
|
+
// length of node should include parens
|
78
78
|
assert.equal(statementList.statements[0].nodeType, 38 /* Name */);
|
79
|
-
assert.equal(statementList.statements[0].length,
|
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;
|
package/dist/tests/testUtils.js
CHANGED
@@ -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.
|
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":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AACjC,uCAAyB;AACzB,2CAA6B;AAG7B,+CAA4C;AAC5C,+DAA4D;AAC5D,iDAA8C;AAC9C,uDAAqD;AACrD,uDAAwD;AAExD,2DAAsG;
|
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 */);
|