Skip to content

Commit 5ba9dcf

Browse files
authored
Removed experimental support for PEP 736, which was rejected. (#10616)
1 parent c8fafd8 commit 5ba9dcf

25 files changed

+16
-214
lines changed

packages/pyright-internal/src/analyzer/parseTreeUtils.ts

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,7 @@ export function isCompliantWithNodeRangeRules(node: ParseNode) {
159159
// 1. Children are all contained within the parent.
160160
// 2. Children have non-overlapping ranges.
161161
// 3. Children are listed in increasing order.
162-
if (node.nodeType === ParseNodeType.Assignment || node.nodeType === ParseNodeType.StringList) {
163-
return false;
164-
}
165-
166-
if (node.nodeType === ParseNodeType.Argument && node.d.isNameSameAsValue) {
167-
return false;
168-
}
169-
170-
return true;
162+
return node.nodeType !== ParseNodeType.Assignment && node.nodeType !== ParseNodeType.StringList;
171163
}
172164

173165
export function getClassFullName(classNode: ParseNode, moduleName: string, className: string): string {
@@ -206,9 +198,7 @@ export function printArg(node: ArgumentNode, flags: PrintExpressionFlags) {
206198
if (node.d.name) {
207199
argStr += node.d.name.d.value + '=';
208200
}
209-
if (!node.d.isNameSameAsValue) {
210-
argStr += printExpression(node.d.valueExpr, flags);
211-
}
201+
argStr += printExpression(node.d.valueExpr, flags);
212202
return argStr;
213203
}
214204

packages/pyright-internal/src/analyzer/testWalker.ts

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*/
99

1010
import { ParseTreeWalker } from '../analyzer/parseTreeWalker';
11-
import { fail } from '../common/debug';
11+
import { assertNever, fail } from '../common/debug';
1212
import { TextRange } from '../common/textRange';
1313
import { NameNode, ParseNode, ParseNodeArray, ParseNodeType } from '../parser/parseNodes';
1414
import { isCompliantWithNodeRangeRules } from './parseTreeUtils';
@@ -74,15 +74,8 @@ export class TestWalker extends ParseTreeWalker {
7474
}
7575
break;
7676

77-
case ParseNodeType.Argument: {
78-
if (node.d.isNameSameAsValue) {
79-
skipCheck = true;
80-
}
81-
break;
82-
}
83-
8477
default:
85-
fail(`node ${node.nodeType} is not marked as not following range rules.`);
78+
assertNever(node);
8679
}
8780
}
8881

@@ -96,13 +89,7 @@ export class TestWalker extends ParseTreeWalker {
9689
// Make sure the child is after the previous child.
9790
if (child.start < TextRange.getEnd(prevNode)) {
9891
// Special-case the function annotation which can "bleed" into the suite.
99-
let exempted = prevNode.nodeType === ParseNodeType.FunctionAnnotation;
100-
101-
// Special-case name nodes that are part of an argument node that's
102-
// using a keyword argument shortcut.
103-
if (node.nodeType === ParseNodeType.Argument && node.d.isNameSameAsValue) {
104-
exempted = true;
105-
}
92+
const exempted = prevNode.nodeType === ParseNodeType.FunctionAnnotation;
10693

10794
if (!exempted) {
10895
fail(`Child node is not after previous child node`);

packages/pyright-internal/src/languageService/hoverProvider.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ export class HoverProvider {
270270
return null;
271271
}
272272

273-
let node = ParseTreeUtils.findNodeByOffset(this._parseResults.parserOutput.parseTree, offset);
273+
const node = ParseTreeUtils.findNodeByOffset(this._parseResults.parserOutput.parseTree, offset);
274274
if (node === undefined) {
275275
return null;
276276
}
@@ -284,17 +284,6 @@ export class HoverProvider {
284284
};
285285

286286
if (node.nodeType === ParseNodeType.Name) {
287-
// Handle the case where we're pointing to a "fused" keyword argument.
288-
// We want to display the hover information for the value expression.
289-
if (
290-
node.parent?.nodeType === ParseNodeType.Argument &&
291-
node.parent.d.isNameSameAsValue &&
292-
node.parent.d.name === node &&
293-
node.parent.d.valueExpr.nodeType === ParseNodeType.Name
294-
) {
295-
node = node.parent.d.valueExpr;
296-
}
297-
298287
const declInfo = this._evaluator.getDeclInfoForNameNode(node);
299288
const declarations = declInfo?.decls;
300289

packages/pyright-internal/src/languageService/renameProvider.ts

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { Position, Range } from '../common/textRange';
1919
import { Uri } from '../common/uri/uri';
2020
import { convertToWorkspaceEdit } from '../common/workspaceEditUtils';
2121
import { ReferencesProvider, ReferencesResult } from '../languageService/referencesProvider';
22-
import { ParseNodeType } from '../parser/parseNodes';
2322
import { ParseFileResults } from '../parser/parser';
2423

2524
export class RenameProvider {
@@ -122,28 +121,10 @@ export class RenameProvider {
122121
const edits: FileEditAction[] = [];
123122
referencesResult.results.forEach((result) => {
124123
// Special case the renames of keyword arguments.
125-
const node = result.node;
126-
let range = result.location.range;
127-
let replacementText = newName;
128-
129-
if (
130-
node.nodeType === ParseNodeType.Name &&
131-
node.parent?.nodeType === ParseNodeType.Argument &&
132-
node.parent.d.isNameSameAsValue &&
133-
result.parentRange
134-
) {
135-
range = result.parentRange;
136-
if (node === node.parent.d.valueExpr) {
137-
replacementText = `${node.d.value}=${newName}`;
138-
} else {
139-
replacementText = `${newName}=${node.d.value}`;
140-
}
141-
}
142-
143124
edits.push({
144125
fileUri: result.location.uri,
145-
range,
146-
replacementText,
126+
range: result.location.range,
127+
replacementText: newName,
147128
});
148129
});
149130

packages/pyright-internal/src/localization/localize.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,6 @@ export namespace Localizer {
630630
new ParameterizedString<{ type: string }>(getRawString('Diagnostic.isSubclassInvalidType'));
631631
export const keyValueInSet = () => getRawString('Diagnostic.keyValueInSet');
632632
export const keywordArgInTypeArgument = () => getRawString('Diagnostic.keywordArgInTypeArgument');
633-
export const keywordArgShortcutIllegal = () => getRawString('Diagnostic.keywordArgShortcutIllegal');
634633
export const keywordOnlyAfterArgs = () => getRawString('Diagnostic.keywordOnlyAfterArgs');
635634
export const keywordParameterMissing = () => getRawString('Diagnostic.keywordParameterMissing');
636635
export const keywordSubscriptIllegal = () => getRawString('Diagnostic.keywordSubscriptIllegal');

packages/pyright-internal/src/localization/package.nls.cs.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@
284284
"isSubclassInvalidType": "Druhý argument pro issubclass musí být třída nebo řazená kolekce členů (tuple) tříd.",
285285
"keyValueInSet": "Páry klíč-hodnota nejsou v rámci sady (set) povoleny.",
286286
"keywordArgInTypeArgument": "Argumenty klíčových slov nelze použít v seznamech argumentů typu",
287-
"keywordArgShortcutIllegal": "Zástupce argumentu klíčového slova vyžaduje Python 3.14 nebo novější.",
288287
"keywordOnlyAfterArgs": "Oddělovač argumentů jen pro klíčová slova není povolený za parametrem *",
289288
"keywordParameterMissing": "Jeden nebo více parametrů klíčového slova musí následovat za parametrem „*“",
290289
"keywordSubscriptIllegal": "Argumenty klíčových slov v dolních indexech nejsou podporovány",

packages/pyright-internal/src/localization/package.nls.de.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@
284284
"isSubclassInvalidType": "Das zweite Argument für \"issubclass\" muss eine Klasse oder tuple von Klassen sein.",
285285
"keyValueInSet": "Schlüssel-Wert-Paare sind innerhalb einer Menge „set“ nicht zulässig.",
286286
"keywordArgInTypeArgument": "Schlüsselwortargumente können nicht in Typargumentlisten verwendet werden.",
287-
"keywordArgShortcutIllegal": "Die Tastenkombination für Schlüsselwortargumente erfordert Python 3.14 oder höher.",
288287
"keywordOnlyAfterArgs": "Schlüsselworttrennzeichen ist nach dem Parameter \"*\" nicht zulässig.",
289288
"keywordParameterMissing": "Mindestens ein Schlüsselwortparameter muss dem Parameter \"*\" folgen.",
290289
"keywordSubscriptIllegal": "Schlüsselwortargumente innerhalb von Tiefskripts werden nicht unterstützt.",

packages/pyright-internal/src/localization/package.nls.en-us.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,6 @@
699699
"comment": "{Locked='set'}"
700700
},
701701
"keywordArgInTypeArgument": "Keyword arguments cannot be used in type argument lists",
702-
"keywordArgShortcutIllegal": "Keyword argument shortcut requires Python 3.14 or newer",
703702
"keywordOnlyAfterArgs": "Keyword-only argument separator not allowed after \"*\" parameter",
704703
"keywordParameterMissing": "One or more keyword parameters must follow \"*\" parameter",
705704
"keywordSubscriptIllegal": "Keyword arguments within subscripts are not supported",

packages/pyright-internal/src/localization/package.nls.es.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@
284284
"isSubclassInvalidType": "El segundo argumento de \"issubclass\" debe ser una clase o tuple de clases",
285285
"keyValueInSet": "No se permiten pares de clave/valor dentro de un set",
286286
"keywordArgInTypeArgument": "No se pueden usar argumentos de palabra clave en listas de argumentos de tipo",
287-
"keywordArgShortcutIllegal": "El acceso directo del argumento de palabra clave requiere Python 3.14 o posterior",
288287
"keywordOnlyAfterArgs": "No se permite el separador de argumentos por palabra clave después del parámetro \"*\".",
289288
"keywordParameterMissing": "Uno o varios parámetros de palabra clave deben seguir el parámetro \"*\"",
290289
"keywordSubscriptIllegal": "No se admiten argumentos de palabra clave dentro de subíndices",

packages/pyright-internal/src/localization/package.nls.fr.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@
284284
"isSubclassInvalidType": "Le deuxième argument de « issubclass » doit être une classe ou un tuple de classes",
285285
"keyValueInSet": "Les paires clé/valeur ne sont pas autorisées dans un set",
286286
"keywordArgInTypeArgument": "Les arguments de mot-clé ne peuvent pas être utilisés dans les listes d'arguments de type",
287-
"keywordArgShortcutIllegal": "Le raccourci d’argument de mot clé nécessite Python 3.14 ou une version plus récente",
288287
"keywordOnlyAfterArgs": "Séparateur d’arguments mot clé uniquement non autorisé après le paramètre « * »",
289288
"keywordParameterMissing": "Un ou plusieurs paramètres de mot-clé doivent suivre le paramètre \"*\"",
290289
"keywordSubscriptIllegal": "Les arguments de mot-clé dans les indices ne sont pas pris en charge",

0 commit comments

Comments
 (0)