@zzzen/pyright-internal 1.2.0-dev.20250420 → 1.2.0-dev.20250802
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/analyzerNodeInfo.js +1 -1
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.d.ts +2 -1
- package/dist/analyzer/binder.js +33 -18
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +81 -44
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +19 -7
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.d.ts +9 -8
- package/dist/analyzer/codeFlowTypes.js +9 -8
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/codeFlowUtils.js +4 -2
- package/dist/analyzer/codeFlowUtils.js.map +1 -1
- package/dist/analyzer/docStringUtils.js +3 -1
- package/dist/analyzer/docStringUtils.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +5 -3
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/operations.js +1 -1
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +5 -3
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.js +10 -3
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +3 -4
- package/dist/analyzer/parseTreeUtils.js +19 -225
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +4 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +12 -2
- package/dist/analyzer/program.js +74 -58
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +3 -5
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +13 -3
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/sentinel.d.ts +4 -0
- package/dist/analyzer/sentinel.js +51 -0
- package/dist/analyzer/sentinel.js.map +1 -0
- package/dist/analyzer/service.d.ts +2 -2
- package/dist/analyzer/service.js +7 -6
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +4 -0
- package/dist/analyzer/sourceFile.js +52 -12
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceFileInfo.d.ts +10 -1
- package/dist/analyzer/sourceFileInfo.js +28 -0
- package/dist/analyzer/sourceFileInfo.js.map +1 -1
- package/dist/analyzer/sourceFileInfoUtils.js +4 -4
- package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
- package/dist/analyzer/sourceMapper.d.ts +1 -1
- package/dist/analyzer/sourceMapper.js +20 -20
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/symbol.d.ts +3 -0
- package/dist/analyzer/symbol.js +11 -0
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/testWalker.js +2 -13
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +1 -1
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +261 -137
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +8 -4
- package/dist/analyzer/typeEvaluatorTypes.js +15 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +47 -13
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +10 -2
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typePrinterUtils.js +2 -2
- package/dist/analyzer/typePrinterUtils.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +2 -0
- package/dist/analyzer/typeUtils.js +10 -0
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +9 -5
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +9 -2
- package/dist/analyzer/types.js +39 -1
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.d.ts +96 -0
- package/dist/commands/dumpFileDebugInfoCommand.js +13 -2
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/cancellationUtils.d.ts +1 -1
- package/dist/common/cancellationUtils.js +2 -2
- package/dist/common/cancellationUtils.js.map +1 -1
- package/dist/common/charCodes.d.ts +1 -1
- package/dist/common/charCodes.js +1 -1
- package/dist/common/charCodes.js.map +1 -1
- package/dist/common/configOptions.d.ts +1 -0
- package/dist/common/configOptions.js +5 -0
- package/dist/common/configOptions.js.map +1 -1
- package/dist/common/core.d.ts +1 -3
- package/dist/common/core.js +3 -4
- package/dist/common/core.js.map +1 -1
- package/dist/common/diagnostic.d.ts +1 -1
- package/dist/common/diagnosticRules.d.ts +1 -0
- package/dist/common/diagnosticRules.js +1 -0
- package/dist/common/diagnosticRules.js.map +1 -1
- package/dist/common/docRange.d.ts +6 -0
- package/dist/common/docRange.js +10 -0
- package/dist/common/docRange.js.map +1 -0
- package/dist/common/envVarUtils.js +1 -6
- package/dist/common/envVarUtils.js.map +1 -1
- package/dist/common/extensibility.d.ts +11 -2
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileBasedCancellationUtils.d.ts +1 -0
- package/dist/common/fileBasedCancellationUtils.js +1 -0
- package/dist/common/fileBasedCancellationUtils.js.map +1 -1
- package/dist/common/logTracker.d.ts +5 -1
- package/dist/common/logTracker.js +43 -26
- package/dist/common/logTracker.js.map +1 -1
- package/dist/common/pathUtils.d.ts +1 -1
- package/dist/common/pathUtils.js +3 -2
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +1 -1
- package/dist/common/realFileSystem.js +2 -1
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/stringUtils.d.ts +0 -1
- package/dist/common/stringUtils.js +0 -42
- package/dist/common/stringUtils.js.map +1 -1
- package/dist/common/textEditTracker.js +5 -3
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/common/textRange.d.ts +5 -11
- package/dist/common/textRange.js +31 -56
- package/dist/common/textRange.js.map +1 -1
- package/dist/common/textRangeCollection.js +3 -2
- package/dist/common/textRangeCollection.js.map +1 -1
- package/dist/common/uri/baseUri.js +2 -1
- package/dist/common/uri/baseUri.js.map +1 -1
- package/dist/common/uri/uri.d.ts +5 -2
- package/dist/common/uri/uri.js +21 -5
- package/dist/common/uri/uri.js.map +1 -1
- package/dist/common/uri/uriUtils.d.ts +2 -2
- package/dist/common/uri/uriUtils.js +4 -3
- package/dist/common/uri/uriUtils.js.map +1 -1
- package/dist/common/workspaceEditUtils.js +9 -9
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +5 -3
- package/dist/languageServerBase.js +44 -37
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.d.ts +3 -0
- package/dist/languageService/analyzerServiceExecutor.js +1 -0
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/autoImporter.d.ts +2 -2
- package/dist/languageService/autoImporter.js +3 -3
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +2 -3
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +16 -13
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +2 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.d.ts +4 -1
- package/dist/languageService/documentSymbolCollector.js +9 -7
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +1 -9
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js +1 -0
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/navigationUtils.d.ts +1 -1
- package/dist/languageService/referencesProvider.d.ts +2 -1
- package/dist/languageService/referencesProvider.js +8 -7
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/renameProvider.js +4 -19
- package/dist/languageService/renameProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +2 -0
- package/dist/languageService/tooltipUtils.js +2 -0
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/languageService/workspaceSymbolProvider.js +1 -1
- package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +12 -2
- package/dist/localization/localize.js +12 -2
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +23 -9
- package/dist/localization/package.nls.de.json +18 -4
- package/dist/localization/package.nls.en-us.json +36 -2
- package/dist/localization/package.nls.es.json +18 -4
- package/dist/localization/package.nls.fr.json +22 -8
- package/dist/localization/package.nls.it.json +23 -9
- package/dist/localization/package.nls.ja.json +18 -4
- package/dist/localization/package.nls.ko.json +23 -9
- package/dist/localization/package.nls.pl.json +18 -4
- package/dist/localization/package.nls.pt-br.json +18 -4
- package/dist/localization/package.nls.qps-ploc.json +17 -3
- package/dist/localization/package.nls.ru.json +18 -4
- package/dist/localization/package.nls.tr.json +23 -9
- package/dist/localization/package.nls.zh-cn.json +18 -4
- package/dist/localization/package.nls.zh-tw.json +18 -4
- package/dist/parser/characters.d.ts +1 -8
- package/dist/parser/characters.js +6 -3
- package/dist/parser/characters.js.map +1 -1
- package/dist/parser/parseNodeUtils.d.ts +12 -0
- package/dist/parser/parseNodeUtils.js +136 -0
- package/dist/parser/parseNodeUtils.js.map +1 -0
- package/dist/parser/parseNodes.d.ts +12 -2
- package/dist/parser/parseNodes.js +17 -2
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +3 -2
- package/dist/parser/parser.js +54 -47
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.d.ts +3 -3
- package/dist/parser/tokenizer.js +58 -38
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.d.ts +4 -3
- package/dist/parser/tokenizerTypes.js +4 -3
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/pyright.js +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/server.js +3 -3
- package/dist/server.js.map +1 -1
- package/dist/tests/checker.test.js +2 -2
- package/dist/tests/common.test.js +6 -6
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/fourslash/completions.autoimport.unicode.fourslash.js +29 -0
- package/dist/tests/fourslash/completions.autoimport.unicode.fourslash.js.map +1 -0
- package/dist/tests/fourslash/completions.declNames.method.fourslash.js +8 -8
- package/dist/tests/harness/fourslash/testState.d.ts +3 -2
- package/dist/tests/harness/fourslash/testState.js +9 -3
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/lsp/languageServer.js +1 -1
- package/dist/tests/lsp/languageServer.js.map +1 -1
- package/dist/tests/lsp/languageServerTestUtils.d.ts +1 -2
- package/dist/tests/lsp/languageServerTestUtils.js +2 -2
- package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
- package/dist/tests/positionUtils.test.js +1 -1
- package/dist/tests/service.test.js +4 -4
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +19 -1
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/stringUtils.test.js +0 -12
- package/dist/tests/stringUtils.test.js.map +1 -1
- package/dist/tests/testStateUtils.js +8 -3
- package/dist/tests/testStateUtils.js.map +1 -1
- package/dist/tests/tokenizer.test.js +5 -5
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +11 -13
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +15 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +16 -1
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +9 -3
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/typeEvaluator6.test.js +1 -1
- package/dist/tests/typeEvaluator7.test.js +9 -0
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typeEvaluator8.test.js +4 -0
- package/dist/tests/typeEvaluator8.test.js.map +1 -1
- package/dist/tests/workspaceEditUtils.test.js +7 -9
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/workspaceFactory.d.ts +12 -1
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +2 -3
- package/dist/tests/fourslash/rename.args.fourslash.js +0 -72
- package/dist/tests/fourslash/rename.args.fourslash.js.map +0 -1
- /package/dist/tests/fourslash/{rename.args.fourslash.d.ts → completions.autoimport.unicode.fourslash.d.ts} +0 -0
package/dist/parser/parser.js
CHANGED
|
@@ -36,13 +36,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
exports.Parser = exports.ParseTextMode = exports.ParseOptions = void 0;
|
|
39
|
-
const sourceFile_1 = require("../analyzer/sourceFile");
|
|
40
39
|
const collectionUtils_1 = require("../common/collectionUtils");
|
|
41
40
|
const debug_1 = require("../common/debug");
|
|
42
41
|
const diagnostic_1 = require("../common/diagnostic");
|
|
43
42
|
const diagnosticSink_1 = require("../common/diagnosticSink");
|
|
44
43
|
const positionUtils_1 = require("../common/positionUtils");
|
|
45
44
|
const pythonVersion_1 = require("../common/pythonVersion");
|
|
45
|
+
const stringUtils_1 = require("../common/stringUtils");
|
|
46
46
|
const textRange_1 = require("../common/textRange");
|
|
47
47
|
const timing_1 = require("../common/timing");
|
|
48
48
|
const localize_1 = require("../localization/localize");
|
|
@@ -50,13 +50,15 @@ const parseNodes_1 = require("./parseNodes");
|
|
|
50
50
|
const StringTokenUtils = __importStar(require("./stringTokenUtils"));
|
|
51
51
|
const tokenizer_1 = require("./tokenizer");
|
|
52
52
|
const tokenizerTypes_1 = require("./tokenizerTypes");
|
|
53
|
+
const commentRegEx = /^(\s*#\s*type:\s*)([^\r\n]*)/;
|
|
54
|
+
const ignoreCommentRegEx = /^ignore(\s|\[|$)/;
|
|
53
55
|
class ParseOptions {
|
|
54
56
|
constructor() {
|
|
55
57
|
this.isStubFile = false;
|
|
56
58
|
this.pythonVersion = pythonVersion_1.latestStablePythonVersion;
|
|
57
59
|
this.reportInvalidStringEscapeSequence = false;
|
|
58
60
|
this.skipFunctionAndClassBody = false;
|
|
59
|
-
this.
|
|
61
|
+
this.useNotebookMode = false;
|
|
60
62
|
this.reportErrorsForParsedStringContents = false;
|
|
61
63
|
}
|
|
62
64
|
}
|
|
@@ -128,6 +130,7 @@ class Parser {
|
|
|
128
130
|
(0, debug_1.assert)(this._tokenizerOutput !== undefined);
|
|
129
131
|
return {
|
|
130
132
|
text: fileContents,
|
|
133
|
+
contentHash: (0, stringUtils_1.hashString)(fileContents),
|
|
131
134
|
parserOutput: {
|
|
132
135
|
parseTree: moduleNode,
|
|
133
136
|
importedModules: this._importedModules,
|
|
@@ -137,6 +140,7 @@ class Parser {
|
|
|
137
140
|
hasTypeAnnotations: this._hasTypeAnnotations,
|
|
138
141
|
},
|
|
139
142
|
tokenizerOutput: this._tokenizerOutput,
|
|
143
|
+
lines: this._tokenizerOutput.lines,
|
|
140
144
|
};
|
|
141
145
|
}
|
|
142
146
|
parseTextExpression(fileContents, textOffset, textLength, parseOptions, parseTextMode = 0 /* ParseTextMode.Expression */, initialParenDepth = 0, typingSymbolAliases) {
|
|
@@ -186,7 +190,7 @@ class Parser {
|
|
|
186
190
|
this._diagSink = diagSink;
|
|
187
191
|
// Tokenize the file contents.
|
|
188
192
|
const tokenizer = new tokenizer_1.Tokenizer();
|
|
189
|
-
this._tokenizerOutput = tokenizer.tokenize(fileContents, textOffset, textLength, initialParenDepth, this._parseOptions.
|
|
193
|
+
this._tokenizerOutput = tokenizer.tokenize(fileContents, textOffset, textLength, initialParenDepth, this._parseOptions.useNotebookMode);
|
|
190
194
|
this._tokenIndex = 0;
|
|
191
195
|
}
|
|
192
196
|
// stmt: simple_stmt | compound_stmt
|
|
@@ -1399,23 +1403,32 @@ class Parser {
|
|
|
1399
1403
|
}
|
|
1400
1404
|
let typeExpr;
|
|
1401
1405
|
let symbolName;
|
|
1406
|
+
let isAsKeywordAllowed = true;
|
|
1402
1407
|
if (this._peekTokenType() !== 10 /* TokenType.Colon */) {
|
|
1403
|
-
|
|
1408
|
+
const listResult = this._parseExpressionListGeneric(() => this._parseTestExpression(/* allowAssignmentExpression */ true));
|
|
1409
|
+
if (listResult.parseError) {
|
|
1410
|
+
typeExpr = listResult.parseError;
|
|
1411
|
+
}
|
|
1412
|
+
else {
|
|
1413
|
+
typeExpr = this._makeExpressionOrTuple(listResult, /* enclosedInParens */ false);
|
|
1414
|
+
// Python 3.14 allows more than one exception type to be provided in
|
|
1415
|
+
// an except clause.
|
|
1416
|
+
if (listResult.list.length > 1) {
|
|
1417
|
+
if (pythonVersion_1.PythonVersion.isLessThan(this._getLanguageVersion(), pythonVersion_1.pythonVersion3_14)) {
|
|
1418
|
+
this._addSyntaxError(localize_1.LocMessage.exceptRequiresParens(), typeExpr);
|
|
1419
|
+
}
|
|
1420
|
+
isAsKeywordAllowed = false;
|
|
1421
|
+
}
|
|
1422
|
+
}
|
|
1404
1423
|
if (this._consumeTokenIfKeyword(1 /* KeywordType.As */)) {
|
|
1424
|
+
if (!isAsKeywordAllowed) {
|
|
1425
|
+
this._addSyntaxError(localize_1.LocMessage.exceptWithAsRequiresParens(), typeExpr);
|
|
1426
|
+
}
|
|
1405
1427
|
symbolName = this._getTokenIfIdentifier();
|
|
1406
1428
|
if (!symbolName) {
|
|
1407
1429
|
this._addSyntaxError(localize_1.LocMessage.expectedNameAfterAs(), this._peekToken());
|
|
1408
1430
|
}
|
|
1409
1431
|
}
|
|
1410
|
-
else {
|
|
1411
|
-
// Handle the python 2.x syntax in a graceful manner.
|
|
1412
|
-
const peekToken = this._peekToken();
|
|
1413
|
-
if (this._consumeTokenIfType(12 /* TokenType.Comma */)) {
|
|
1414
|
-
this._addSyntaxError(localize_1.LocMessage.expectedAsAfterException(), peekToken);
|
|
1415
|
-
// Parse the expression expected in python 2.x, but discard it.
|
|
1416
|
-
this._parseTestExpression(/* allowAssignmentExpression */ false);
|
|
1417
|
-
}
|
|
1418
|
-
}
|
|
1419
1432
|
}
|
|
1420
1433
|
else if (isExceptGroup) {
|
|
1421
1434
|
this._addSyntaxError(localize_1.LocMessage.exceptGroupRequiresType(), this._peekToken());
|
|
@@ -3081,8 +3094,7 @@ class Parser {
|
|
|
3081
3094
|
return { args: argList, trailingComma };
|
|
3082
3095
|
}
|
|
3083
3096
|
// argument: ( test [comp_for] |
|
|
3084
|
-
//
|
|
3085
|
-
// name '=' |
|
|
3097
|
+
// test '=' test |
|
|
3086
3098
|
// '**' test |
|
|
3087
3099
|
// '*' test )
|
|
3088
3100
|
_parseArgument() {
|
|
@@ -3095,34 +3107,16 @@ class Parser {
|
|
|
3095
3107
|
argType = 2 /* ArgCategory.UnpackedDictionary */;
|
|
3096
3108
|
}
|
|
3097
3109
|
let valueExpr = this._parseTestExpression(/* allowAssignmentExpression */ true);
|
|
3098
|
-
let
|
|
3099
|
-
let isNameSameAsValue = false;
|
|
3100
|
-
let assignmentToken;
|
|
3110
|
+
let nameIdentifier;
|
|
3101
3111
|
if (argType === 0 /* ArgCategory.Simple */) {
|
|
3102
|
-
const nextToken = this._peekToken();
|
|
3103
3112
|
if (this._consumeTokenIfOperator(2 /* OperatorType.Assign */)) {
|
|
3104
|
-
assignmentToken = nextToken;
|
|
3105
3113
|
const nameExpr = valueExpr;
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
if (pythonVersion_1.PythonVersion.isLessThan(this._getLanguageVersion(), pythonVersion_1.pythonVersion3_14)) {
|
|
3110
|
-
this._addSyntaxError(localize_1.LocMessage.keywordArgShortcutIllegal(), assignmentToken);
|
|
3111
|
-
valueExpr = parseNodes_1.ErrorNode.create(assignmentToken, 14 /* ErrorExpressionCategory.MissingKeywordArgValue */);
|
|
3112
|
-
}
|
|
3113
|
-
else {
|
|
3114
|
-
valueExpr = parseNodes_1.NameNode.create(nameExpr.d.token);
|
|
3115
|
-
isNameSameAsValue = true;
|
|
3116
|
-
}
|
|
3114
|
+
valueExpr = this._parseTestExpression(/* allowAssignmentExpression */ false);
|
|
3115
|
+
if (nameExpr.nodeType === 38 /* ParseNodeType.Name */) {
|
|
3116
|
+
nameIdentifier = nameExpr.d.token;
|
|
3117
3117
|
}
|
|
3118
3118
|
else {
|
|
3119
|
-
|
|
3120
|
-
if (nameExpr.nodeType === 38 /* ParseNodeType.Name */) {
|
|
3121
|
-
nameNode = parseNodes_1.NameNode.create(nameExpr.d.token);
|
|
3122
|
-
}
|
|
3123
|
-
else {
|
|
3124
|
-
this._addSyntaxError(localize_1.LocMessage.expectedParamName(), nameExpr);
|
|
3125
|
-
}
|
|
3119
|
+
this._addSyntaxError(localize_1.LocMessage.expectedParamName(), nameExpr);
|
|
3126
3120
|
}
|
|
3127
3121
|
}
|
|
3128
3122
|
else {
|
|
@@ -3133,13 +3127,9 @@ class Parser {
|
|
|
3133
3127
|
}
|
|
3134
3128
|
}
|
|
3135
3129
|
const argNode = parseNodes_1.ArgumentNode.create(firstToken, valueExpr, argType);
|
|
3136
|
-
if (
|
|
3137
|
-
argNode.d.name =
|
|
3138
|
-
argNode.d.isNameSameAsValue = isNameSameAsValue;
|
|
3130
|
+
if (nameIdentifier) {
|
|
3131
|
+
argNode.d.name = parseNodes_1.NameNode.create(nameIdentifier);
|
|
3139
3132
|
argNode.d.name.parent = argNode;
|
|
3140
|
-
if (assignmentToken) {
|
|
3141
|
-
(0, parseNodes_1.extendRange)(argNode, assignmentToken);
|
|
3142
|
-
}
|
|
3143
3133
|
}
|
|
3144
3134
|
return argNode;
|
|
3145
3135
|
}
|
|
@@ -3686,6 +3676,20 @@ class Parser {
|
|
|
3686
3676
|
if (stringToken.flags & 16 /* StringTokenFlags.Unicode */) {
|
|
3687
3677
|
this._addSyntaxError(localize_1.LocMessage.formatStringUnicode(), stringToken);
|
|
3688
3678
|
}
|
|
3679
|
+
if (stringToken.flags & 128 /* StringTokenFlags.Template */) {
|
|
3680
|
+
this._addSyntaxError(localize_1.LocMessage.formatStringTemplate(), stringToken);
|
|
3681
|
+
}
|
|
3682
|
+
}
|
|
3683
|
+
if (stringToken.flags & 128 /* StringTokenFlags.Template */) {
|
|
3684
|
+
if (pythonVersion_1.PythonVersion.isLessThan(this._getLanguageVersion(), pythonVersion_1.pythonVersion3_14)) {
|
|
3685
|
+
this._addSyntaxError(localize_1.LocMessage.templateStringIllegal(), stringToken);
|
|
3686
|
+
}
|
|
3687
|
+
if (stringToken.flags & 32 /* StringTokenFlags.Bytes */) {
|
|
3688
|
+
this._addSyntaxError(localize_1.LocMessage.templateStringBytes(), stringToken);
|
|
3689
|
+
}
|
|
3690
|
+
if (stringToken.flags & 16 /* StringTokenFlags.Unicode */) {
|
|
3691
|
+
this._addSyntaxError(localize_1.LocMessage.templateStringUnicode(), stringToken);
|
|
3692
|
+
}
|
|
3689
3693
|
}
|
|
3690
3694
|
}
|
|
3691
3695
|
_makeStringNode(stringToken) {
|
|
@@ -3703,7 +3707,6 @@ class Parser {
|
|
|
3703
3707
|
return undefined;
|
|
3704
3708
|
}
|
|
3705
3709
|
const interTokenContents = this._fileContents.slice(curToken.start + curToken.length, nextToken.start);
|
|
3706
|
-
const commentRegEx = /^(\s*#\s*type:\s*)([^\r\n]*)/;
|
|
3707
3710
|
const match = interTokenContents.match(commentRegEx);
|
|
3708
3711
|
if (!match) {
|
|
3709
3712
|
return undefined;
|
|
@@ -3714,7 +3717,7 @@ class Parser {
|
|
|
3714
3717
|
// expression because mypy supports ignore comments of the
|
|
3715
3718
|
// form ignore[errorCode, ...]. We'll treat these as regular
|
|
3716
3719
|
// ignore statements (as though no errorCodes were included).
|
|
3717
|
-
if (typeString.trim().match(
|
|
3720
|
+
if (typeString.trim().match(ignoreCommentRegEx)) {
|
|
3718
3721
|
return undefined;
|
|
3719
3722
|
}
|
|
3720
3723
|
const tokenOffset = curToken.start + curToken.length + match[1].length;
|
|
@@ -3947,7 +3950,11 @@ class Parser {
|
|
|
3947
3950
|
this._addSyntaxError(localize_1.LocMessage.annotationStringEscape(), stringNode);
|
|
3948
3951
|
}
|
|
3949
3952
|
}
|
|
3950
|
-
else if ((stringToken.flags &
|
|
3953
|
+
else if ((stringToken.flags &
|
|
3954
|
+
(8 /* StringTokenFlags.Raw */ |
|
|
3955
|
+
32 /* StringTokenFlags.Bytes */ |
|
|
3956
|
+
64 /* StringTokenFlags.Format */ |
|
|
3957
|
+
128 /* StringTokenFlags.Template */)) ===
|
|
3951
3958
|
0) {
|
|
3952
3959
|
const parser = new Parser();
|
|
3953
3960
|
const parseResults = parser.parseTextExpression(this._fileContents, tokenOffset + prefixLength, unescapedString.length, this._parseOptions, 1 /* ParseTextMode.VariableAnnotation */, (stringNode.d.strings[0].d.token.flags & 4 /* StringTokenFlags.Triplicate */) !== 0 ? 1 : 0, this._typingSymbolAliases);
|