Refactor the ExprDict node (#11267)

Co-authored-by: Micha Reiser <micha@reiser.io>
This commit is contained in:
Alex Waygood 2024-05-07 12:46:10 +01:00 committed by GitHub
parent de270154a1
commit 6774f27f4b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
52 changed files with 2425 additions and 2240 deletions

View file

@ -1544,8 +1544,7 @@ impl<'src> Parser<'src> {
// Return an empty `DictExpr` when finding a `}` right after the `{`
if self.eat(TokenKind::Rbrace) {
return Expr::Dict(ast::ExprDict {
keys: vec![],
values: vec![],
items: vec![],
range: self.node_range(start),
});
}
@ -1794,21 +1793,24 @@ impl<'src> Parser<'src> {
self.expect(TokenKind::Comma);
}
let mut keys = vec![key];
let mut values = vec![value];
let mut items = vec![ast::DictItem { key, value }];
self.parse_comma_separated_list(RecoveryContextKind::DictElements, |parser| {
if parser.eat(TokenKind::DoubleStar) {
keys.push(None);
// Handle dictionary unpacking. Here, the grammar is `'**' bitwise_or`
// which requires limiting the expression.
values.push(parser.parse_expression_with_bitwise_or_precedence().expr);
items.push(ast::DictItem {
key: None,
value: parser.parse_expression_with_bitwise_or_precedence().expr,
});
} else {
keys.push(Some(parser.parse_conditional_expression_or_higher().expr));
let key = parser.parse_conditional_expression_or_higher().expr;
parser.expect(TokenKind::Colon);
values.push(parser.parse_conditional_expression_or_higher().expr);
items.push(ast::DictItem {
key: Some(key),
value: parser.parse_conditional_expression_or_higher().expr,
});
}
});
@ -1816,8 +1818,7 @@ impl<'src> Parser<'src> {
ast::ExprDict {
range: self.node_range(start),
keys,
values,
items,
}
}

View file

@ -51,24 +51,23 @@ pub(super) fn pattern_to_expr(pattern: Pattern) -> Expr {
patterns,
rest,
}) => {
let mut keys = keys.into_iter().map(Option::Some).collect::<Vec<_>>();
let mut values = patterns
let mut items: Vec<ast::DictItem> = keys
.into_iter()
.map(pattern_to_expr)
.collect::<Vec<_>>();
.zip(patterns)
.map(|(key, pattern)| ast::DictItem {
key: Some(key),
value: pattern_to_expr(pattern),
})
.collect();
if let Some(rest) = rest {
keys.push(None);
values.push(Expr::Name(ast::ExprName {
let value = Expr::Name(ast::ExprName {
range: rest.range,
id: rest.id,
ctx: ExprContext::Store,
}));
});
items.push(ast::DictItem { key: None, value });
}
Expr::Dict(ast::ExprDict {
range,
keys,
values,
})
Expr::Dict(ast::ExprDict { range, items })
}
Pattern::MatchClass(ast::PatternMatchClass {
range,

View file

@ -15,34 +15,36 @@ Module(
value: Dict(
ExprDict {
range: 125..135,
keys: [
None,
Some(
NumberLiteral(
ExprNumberLiteral {
range: 133..134,
value: Int(
1,
),
items: [
DictItem {
key: None,
value: Name(
ExprName {
range: 128..129,
id: "x",
ctx: Load,
},
),
),
],
values: [
Name(
ExprName {
range: 128..129,
id: "x",
ctx: Load,
},
),
Name(
ExprName {
range: 134..134,
id: "",
ctx: Invalid,
},
),
},
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 133..134,
value: Int(
1,
),
},
),
),
value: Name(
ExprName {
range: 134..134,
id: "",
ctx: Invalid,
},
),
},
],
},
),
@ -54,52 +56,54 @@ Module(
value: Dict(
ExprDict {
range: 136..162,
keys: [
Some(
Name(
ExprName {
range: 137..138,
id: "a",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 137..138,
id: "a",
ctx: Load,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 140..141,
value: Int(
1,
),
},
),
),
None,
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 140..141,
value: Int(
1,
),
},
),
If(
ExprIf {
range: 145..161,
test: BooleanLiteral(
ExprBooleanLiteral {
range: 150..154,
value: true,
},
),
body: Name(
ExprName {
range: 145..146,
id: "x",
ctx: Load,
},
),
orelse: Name(
ExprName {
range: 160..161,
id: "y",
ctx: Load,
},
),
},
),
},
DictItem {
key: None,
value: If(
ExprIf {
range: 145..161,
test: BooleanLiteral(
ExprBooleanLiteral {
range: 150..154,
value: true,
},
),
body: Name(
ExprName {
range: 145..146,
id: "x",
ctx: Load,
},
),
orelse: Name(
ExprName {
range: 160..161,
id: "y",
ctx: Load,
},
),
},
),
},
],
},
),
@ -111,62 +115,64 @@ Module(
value: Dict(
ExprDict {
range: 163..184,
keys: [
None,
Some(
Name(
ExprName {
range: 179..180,
id: "b",
ctx: Load,
items: [
DictItem {
key: None,
value: Lambda(
ExprLambda {
range: 166..177,
parameters: Some(
Parameters {
range: 173..174,
posonlyargs: [],
args: [
ParameterWithDefault {
range: 173..174,
parameter: Parameter {
range: 173..174,
name: Identifier {
id: "x",
range: 173..174,
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
),
body: Name(
ExprName {
range: 176..177,
id: "x",
ctx: Load,
},
),
},
),
),
],
values: [
Lambda(
ExprLambda {
range: 166..177,
parameters: Some(
Parameters {
range: 173..174,
posonlyargs: [],
args: [
ParameterWithDefault {
range: 173..174,
parameter: Parameter {
range: 173..174,
name: Identifier {
id: "x",
range: 173..174,
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
),
body: Name(
},
DictItem {
key: Some(
Name(
ExprName {
range: 176..177,
id: "x",
range: 179..180,
id: "b",
ctx: Load,
},
),
},
),
NumberLiteral(
ExprNumberLiteral {
range: 182..183,
value: Int(
2,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 182..183,
value: Int(
2,
),
},
),
},
],
},
),
@ -178,49 +184,51 @@ Module(
value: Dict(
ExprDict {
range: 185..201,
keys: [
Some(
Name(
ExprName {
range: 186..187,
id: "a",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 186..187,
id: "a",
ctx: Load,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 189..190,
value: Int(
1,
),
},
),
),
None,
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 189..190,
value: Int(
1,
),
},
),
BoolOp(
ExprBoolOp {
range: 194..200,
op: Or,
values: [
Name(
ExprName {
range: 194..195,
id: "x",
ctx: Load,
},
),
Name(
ExprName {
range: 199..200,
id: "y",
ctx: Load,
},
),
],
},
),
},
DictItem {
key: None,
value: BoolOp(
ExprBoolOp {
range: 194..200,
op: Or,
values: [
Name(
ExprName {
range: 194..195,
id: "x",
ctx: Load,
},
),
Name(
ExprName {
range: 199..200,
id: "y",
ctx: Load,
},
),
],
},
),
},
],
},
),
@ -232,49 +240,51 @@ Module(
value: Dict(
ExprDict {
range: 202..219,
keys: [
None,
Some(
Name(
ExprName {
range: 214..215,
id: "b",
ctx: Load,
items: [
DictItem {
key: None,
value: BoolOp(
ExprBoolOp {
range: 205..212,
op: And,
values: [
Name(
ExprName {
range: 205..206,
id: "x",
ctx: Load,
},
),
Name(
ExprName {
range: 211..212,
id: "y",
ctx: Load,
},
),
],
},
),
),
],
values: [
BoolOp(
ExprBoolOp {
range: 205..212,
op: And,
values: [
Name(
ExprName {
range: 205..206,
id: "x",
ctx: Load,
},
),
Name(
ExprName {
range: 211..212,
id: "y",
ctx: Load,
},
),
],
},
),
NumberLiteral(
ExprNumberLiteral {
range: 217..218,
value: Int(
2,
},
DictItem {
key: Some(
Name(
ExprName {
range: 214..215,
id: "b",
ctx: Load,
},
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 217..218,
value: Int(
2,
),
},
),
},
],
},
),
@ -286,57 +296,61 @@ Module(
value: Dict(
ExprDict {
range: 220..241,
keys: [
Some(
Name(
ExprName {
range: 221..222,
id: "a",
ctx: Load,
},
),
),
None,
Some(
Name(
ExprName {
range: 236..237,
id: "b",
ctx: Load,
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 224..225,
value: Int(
1,
),
},
),
UnaryOp(
ExprUnaryOp {
range: 229..234,
op: Not,
operand: Name(
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 233..234,
id: "x",
range: 221..222,
id: "a",
ctx: Load,
},
),
},
),
NumberLiteral(
ExprNumberLiteral {
range: 239..240,
value: Int(
2,
),
value: NumberLiteral(
ExprNumberLiteral {
range: 224..225,
value: Int(
1,
),
},
),
},
DictItem {
key: None,
value: UnaryOp(
ExprUnaryOp {
range: 229..234,
op: Not,
operand: Name(
ExprName {
range: 233..234,
id: "x",
ctx: Load,
},
),
},
),
},
DictItem {
key: Some(
Name(
ExprName {
range: 236..237,
id: "b",
ctx: Load,
},
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 239..240,
value: Int(
2,
),
},
),
},
],
},
),
@ -348,34 +362,34 @@ Module(
value: Dict(
ExprDict {
range: 242..252,
keys: [
None,
],
values: [
Compare(
ExprCompare {
range: 245..251,
left: Name(
ExprName {
range: 245..246,
id: "x",
ctx: Load,
},
),
ops: [
In,
],
comparators: [
Name(
items: [
DictItem {
key: None,
value: Compare(
ExprCompare {
range: 245..251,
left: Name(
ExprName {
range: 250..251,
id: "y",
range: 245..246,
id: "x",
ctx: Load,
},
),
],
},
),
ops: [
In,
],
comparators: [
Name(
ExprName {
range: 250..251,
id: "y",
ctx: Load,
},
),
],
},
),
},
],
},
),
@ -387,34 +401,34 @@ Module(
value: Dict(
ExprDict {
range: 253..267,
keys: [
None,
],
values: [
Compare(
ExprCompare {
range: 256..266,
left: Name(
ExprName {
range: 256..257,
id: "x",
ctx: Load,
},
),
ops: [
NotIn,
],
comparators: [
Name(
items: [
DictItem {
key: None,
value: Compare(
ExprCompare {
range: 256..266,
left: Name(
ExprName {
range: 265..266,
id: "y",
range: 256..257,
id: "x",
ctx: Load,
},
),
],
},
),
ops: [
NotIn,
],
comparators: [
Name(
ExprName {
range: 265..266,
id: "y",
ctx: Load,
},
),
],
},
),
},
],
},
),
@ -426,34 +440,34 @@ Module(
value: Dict(
ExprDict {
range: 268..277,
keys: [
None,
],
values: [
Compare(
ExprCompare {
range: 271..276,
left: Name(
ExprName {
range: 271..272,
id: "x",
ctx: Load,
},
),
ops: [
Lt,
],
comparators: [
Name(
items: [
DictItem {
key: None,
value: Compare(
ExprCompare {
range: 271..276,
left: Name(
ExprName {
range: 275..276,
id: "y",
range: 271..272,
id: "x",
ctx: Load,
},
),
],
},
),
ops: [
Lt,
],
comparators: [
Name(
ExprName {
range: 275..276,
id: "y",
ctx: Load,
},
),
],
},
),
},
],
},
),

View file

@ -15,82 +15,88 @@ Module(
value: Dict(
ExprDict {
range: 122..147,
keys: [
None,
Some(
Name(
items: [
DictItem {
key: None,
value: Name(
ExprName {
range: 128..129,
id: "y",
ctx: Load,
},
),
),
Some(
Name(
ExprName {
range: 134..135,
range: 125..126,
id: "x",
ctx: Load,
},
),
),
Some(
Compare(
ExprCompare {
range: 137..146,
left: Name(
ExprName {
range: 137..138,
id: "y",
ctx: Load,
},
),
ops: [
In,
],
comparators: [
Name(
},
DictItem {
key: Some(
Name(
ExprName {
range: 128..129,
id: "y",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 130..133,
id: "for",
ctx: Load,
},
),
},
DictItem {
key: Some(
Name(
ExprName {
range: 134..135,
id: "x",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 135..135,
id: "",
ctx: Invalid,
},
),
},
DictItem {
key: Some(
Compare(
ExprCompare {
range: 137..146,
left: Name(
ExprName {
range: 142..146,
id: "data",
range: 137..138,
id: "y",
ctx: Load,
},
),
],
ops: [
In,
],
comparators: [
Name(
ExprName {
range: 142..146,
id: "data",
ctx: Load,
},
),
],
},
),
),
value: Name(
ExprName {
range: 146..146,
id: "",
ctx: Invalid,
},
),
),
],
values: [
Name(
ExprName {
range: 125..126,
id: "x",
ctx: Load,
},
),
Name(
ExprName {
range: 130..133,
id: "for",
ctx: Load,
},
),
Name(
ExprName {
range: 135..135,
id: "",
ctx: Invalid,
},
),
Name(
ExprName {
range: 146..146,
id: "",
ctx: Invalid,
},
),
},
],
},
),

View file

@ -15,51 +15,53 @@ Module(
value: Dict(
ExprDict {
range: 0..24,
keys: [
Some(
Name(
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 1..2,
id: "x",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 1..2,
id: "x",
range: 5..8,
id: "def",
ctx: Load,
},
),
),
Some(
Call(
ExprCall {
range: 9..14,
func: Name(
ExprName {
range: 9..12,
id: "foo",
ctx: Load,
},
DictItem {
key: Some(
Call(
ExprCall {
range: 9..14,
func: Name(
ExprName {
range: 9..12,
id: "foo",
ctx: Load,
},
),
arguments: Arguments {
range: 12..14,
args: [],
keywords: [],
},
),
arguments: Arguments {
range: 12..14,
args: [],
keywords: [],
},
),
),
value: Name(
ExprName {
range: 20..24,
id: "pass",
ctx: Load,
},
),
),
],
values: [
Name(
ExprName {
range: 5..8,
id: "def",
ctx: Load,
},
),
Name(
ExprName {
range: 20..24,
id: "pass",
ctx: Load,
},
),
},
],
},
),

View file

@ -15,40 +15,40 @@ Module(
value: Dict(
ExprDict {
range: 0..10,
keys: [
Some(
Name(
ExprName {
range: 1..2,
id: "x",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 1..2,
id: "x",
ctx: Load,
},
),
),
value: BinOp(
ExprBinOp {
range: 5..10,
left: NumberLiteral(
ExprNumberLiteral {
range: 5..6,
value: Int(
1,
),
},
),
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
range: 9..10,
value: Int(
2,
),
},
),
},
),
),
],
values: [
BinOp(
ExprBinOp {
range: 5..10,
left: NumberLiteral(
ExprNumberLiteral {
range: 5..6,
value: Int(
1,
),
},
),
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
range: 9..10,
value: Int(
2,
),
},
),
},
),
},
],
},
),

View file

@ -15,26 +15,26 @@ Module(
value: Dict(
ExprDict {
range: 0..6,
keys: [
Some(
Name(
ExprName {
range: 1..2,
id: "x",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 1..2,
id: "x",
ctx: Load,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 4..5,
value: Int(
1,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 4..5,
value: Int(
1,
),
},
),
},
],
},
),

View file

@ -15,71 +15,75 @@ Module(
value: Dict(
ExprDict {
range: 55..77,
keys: [
Some(
Named(
ExprNamed {
range: 56..62,
target: Name(
ExprName {
range: 56..57,
id: "x",
ctx: Store,
},
),
value: NumberLiteral(
ExprNumberLiteral {
range: 61..62,
value: Int(
1,
),
},
),
},
items: [
DictItem {
key: Some(
Named(
ExprNamed {
range: 56..62,
target: Name(
ExprName {
range: 56..57,
id: "x",
ctx: Store,
},
),
value: NumberLiteral(
ExprNumberLiteral {
range: 61..62,
value: Int(
1,
),
},
),
},
),
),
),
Some(
Name(
value: Name(
ExprName {
range: 67..68,
id: "z",
range: 64..65,
id: "y",
ctx: Load,
},
),
),
Some(
NumberLiteral(
ExprNumberLiteral {
range: 72..73,
value: Int(
2,
),
},
DictItem {
key: Some(
Name(
ExprName {
range: 67..68,
id: "z",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 68..68,
id: "",
ctx: Invalid,
},
),
),
],
values: [
Name(
ExprName {
range: 64..65,
id: "y",
ctx: Load,
},
),
Name(
ExprName {
range: 68..68,
id: "",
ctx: Invalid,
},
),
Name(
ExprName {
range: 75..76,
id: "a",
ctx: Load,
},
),
},
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 72..73,
value: Int(
2,
),
},
),
),
value: Name(
ExprName {
range: 75..76,
id: "a",
ctx: Load,
},
),
},
],
},
),

View file

@ -15,75 +15,81 @@ Module(
value: Dict(
ExprDict {
range: 57..79,
keys: [
Some(
Name(
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 58..59,
id: "x",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 58..59,
id: "x",
range: 61..62,
id: "y",
ctx: Load,
},
),
),
Some(
NumberLiteral(
ExprNumberLiteral {
range: 66..67,
value: Int(
1,
),
},
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 66..67,
value: Int(
1,
),
},
),
),
value: Name(
ExprName {
range: 67..67,
id: "",
ctx: Invalid,
},
),
),
Some(
Name(
},
DictItem {
key: Some(
Name(
ExprName {
range: 69..70,
id: "z",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 69..70,
id: "z",
range: 72..73,
id: "a",
ctx: Load,
},
),
),
Some(
NumberLiteral(
ExprNumberLiteral {
range: 77..78,
value: Int(
2,
),
},
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 77..78,
value: Int(
2,
),
},
),
),
value: Name(
ExprName {
range: 78..78,
id: "",
ctx: Invalid,
},
),
),
],
values: [
Name(
ExprName {
range: 61..62,
id: "y",
ctx: Load,
},
),
Name(
ExprName {
range: 67..67,
id: "",
ctx: Invalid,
},
),
Name(
ExprName {
range: 72..73,
id: "a",
ctx: Load,
},
),
Name(
ExprName {
range: 78..78,
id: "",
ctx: Invalid,
},
),
},
],
},
),

View file

@ -34,45 +34,47 @@ Module(
value: Dict(
ExprDict {
range: 93..105,
keys: [
Some(
NumberLiteral(
items: [
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 94..95,
value: Int(
1,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 94..95,
range: 97..98,
value: Int(
1,
2,
),
},
),
),
Some(
NumberLiteral(
},
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 100..101,
value: Int(
3,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 100..101,
range: 103..104,
value: Int(
3,
4,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 97..98,
value: Int(
2,
),
},
),
NumberLiteral(
ExprNumberLiteral {
range: 103..104,
value: Int(
4,
),
},
),
},
],
},
),
@ -84,27 +86,27 @@ Module(
value: Dict(
ExprDict {
range: 107..115,
keys: [
Some(
NumberLiteral(
items: [
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 108..109,
value: Int(
1,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 108..109,
range: 111..112,
value: Int(
1,
2,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 111..112,
value: Int(
2,
),
},
),
},
],
},
),
@ -116,45 +118,47 @@ Module(
value: Dict(
ExprDict {
range: 133..144,
keys: [
Some(
NumberLiteral(
items: [
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 134..135,
value: Int(
1,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 134..135,
range: 137..138,
value: Int(
1,
2,
),
},
),
),
Some(
NumberLiteral(
},
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 139..140,
value: Int(
3,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 139..140,
range: 142..143,
value: Int(
3,
4,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 137..138,
value: Int(
2,
),
},
),
NumberLiteral(
ExprNumberLiteral {
range: 142..143,
value: Int(
4,
),
},
),
},
],
},
),
@ -166,26 +170,26 @@ Module(
value: Dict(
ExprDict {
range: 157..162,
keys: [
Some(
NumberLiteral(
ExprNumberLiteral {
range: 158..159,
value: Int(
1,
),
items: [
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 158..159,
value: Int(
1,
),
},
),
),
value: Name(
ExprName {
range: 160..160,
id: "",
ctx: Invalid,
},
),
),
],
values: [
Name(
ExprName {
range: 160..160,
id: "",
ctx: Invalid,
},
),
},
],
},
),
@ -197,17 +201,17 @@ Module(
value: Dict(
ExprDict {
range: 201..205,
keys: [
None,
],
values: [
Name(
ExprName {
range: 204..204,
id: "",
ctx: Invalid,
},
),
items: [
DictItem {
key: None,
value: Name(
ExprName {
range: 204..204,
id: "",
ctx: Invalid,
},
),
},
],
},
),
@ -219,49 +223,53 @@ Module(
value: Dict(
ExprDict {
range: 206..222,
keys: [
Some(
Name(
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 207..208,
id: "x",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 207..208,
id: "x",
range: 210..211,
id: "y",
ctx: Load,
},
),
),
None,
Some(
Name(
},
DictItem {
key: None,
value: Name(
ExprName {
range: 217..218,
id: "a",
range: 215..215,
id: "",
ctx: Invalid,
},
),
},
DictItem {
key: Some(
Name(
ExprName {
range: 217..218,
id: "a",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 220..221,
id: "b",
ctx: Load,
},
),
),
],
values: [
Name(
ExprName {
range: 210..211,
id: "y",
ctx: Load,
},
),
Name(
ExprName {
range: 215..215,
id: "",
ctx: Invalid,
},
),
Name(
ExprName {
range: 220..221,
id: "b",
ctx: Load,
},
),
},
],
},
),
@ -273,69 +281,73 @@ Module(
value: Dict(
ExprDict {
range: 310..330,
keys: [
Some(
Starred(
ExprStarred {
range: 311..313,
value: Name(
ExprName {
range: 312..313,
id: "x",
ctx: Load,
},
),
ctx: Load,
},
items: [
DictItem {
key: Some(
Starred(
ExprStarred {
range: 311..313,
value: Name(
ExprName {
range: 312..313,
id: "x",
ctx: Load,
},
),
ctx: Load,
},
),
),
),
Some(
Name(
value: Name(
ExprName {
range: 318..319,
id: "z",
range: 315..316,
id: "y",
ctx: Load,
},
),
),
Some(
Starred(
ExprStarred {
range: 324..326,
value: Name(
ExprName {
range: 325..326,
id: "b",
ctx: Load,
},
),
},
DictItem {
key: Some(
Name(
ExprName {
range: 318..319,
id: "z",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 321..322,
id: "a",
ctx: Load,
},
),
),
],
values: [
Name(
ExprName {
range: 315..316,
id: "y",
ctx: Load,
},
),
Name(
ExprName {
range: 321..322,
id: "a",
ctx: Load,
},
),
Name(
ExprName {
range: 328..329,
id: "c",
ctx: Load,
},
),
},
DictItem {
key: Some(
Starred(
ExprStarred {
range: 324..326,
value: Name(
ExprName {
range: 325..326,
id: "b",
ctx: Load,
},
),
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 328..329,
id: "c",
ctx: Load,
},
),
},
],
},
),
@ -347,53 +359,55 @@ Module(
value: Dict(
ExprDict {
range: 331..345,
keys: [
Some(
Name(
ExprName {
range: 332..333,
id: "x",
ctx: Load,
},
),
),
Some(
Name(
ExprName {
range: 339..340,
id: "z",
ctx: Load,
},
),
),
],
values: [
Starred(
ExprStarred {
range: 335..337,
value: Name(
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 336..337,
id: "y",
range: 332..333,
id: "x",
ctx: Load,
},
),
ctx: Load,
},
),
Starred(
ExprStarred {
range: 342..344,
value: Name(
),
value: Starred(
ExprStarred {
range: 335..337,
value: Name(
ExprName {
range: 336..337,
id: "y",
ctx: Load,
},
),
ctx: Load,
},
),
},
DictItem {
key: Some(
Name(
ExprName {
range: 343..344,
id: "a",
range: 339..340,
id: "z",
ctx: Load,
},
),
ctx: Load,
},
),
),
value: Starred(
ExprStarred {
range: 342..344,
value: Name(
ExprName {
range: 343..344,
id: "a",
ctx: Load,
},
),
ctx: Load,
},
),
},
],
},
),

View file

@ -110,27 +110,27 @@ Module(
value: Dict(
ExprDict {
range: 271..277,
keys: [
Some(
NumberLiteral(
items: [
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 272..273,
value: Int(
1,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 272..273,
range: 275..276,
value: Int(
1,
2,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 275..276,
value: Int(
2,
),
},
),
},
],
},
),

View file

@ -44,37 +44,37 @@ Module(
Dict(
ExprDict {
range: 14..22,
keys: [
Some(
StringLiteral(
ExprStringLiteral {
range: 15..18,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 15..18,
value: "x",
flags: StringLiteralFlags {
quote_style: Single,
prefix: Empty,
triple_quoted: false,
items: [
DictItem {
key: Some(
StringLiteral(
ExprStringLiteral {
range: 15..18,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 15..18,
value: "x",
flags: StringLiteralFlags {
quote_style: Single,
prefix: Empty,
triple_quoted: false,
},
},
},
),
),
},
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 20..21,
value: Int(
1,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 20..21,
value: Int(
1,
),
},
),
},
],
},
),

View file

@ -57,65 +57,67 @@ Module(
value: Dict(
ExprDict {
range: 20..36,
keys: [
Some(
StringLiteral(
ExprStringLiteral {
range: 21..24,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 21..24,
value: "b",
flags: StringLiteralFlags {
quote_style: Single,
prefix: Empty,
triple_quoted: false,
items: [
DictItem {
key: Some(
StringLiteral(
ExprStringLiteral {
range: 21..24,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 21..24,
value: "b",
flags: StringLiteralFlags {
quote_style: Single,
prefix: Empty,
triple_quoted: false,
},
},
},
),
),
},
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 26..27,
value: Int(
1,
),
},
),
),
Some(
StringLiteral(
ExprStringLiteral {
range: 29..32,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 29..32,
value: "c",
flags: StringLiteralFlags {
quote_style: Single,
prefix: Empty,
triple_quoted: false,
},
DictItem {
key: Some(
StringLiteral(
ExprStringLiteral {
range: 29..32,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 29..32,
value: "c",
flags: StringLiteralFlags {
quote_style: Single,
prefix: Empty,
triple_quoted: false,
},
},
},
),
),
},
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 34..35,
value: Int(
2,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 26..27,
value: Int(
1,
),
},
),
NumberLiteral(
ExprNumberLiteral {
range: 34..35,
value: Int(
2,
),
},
),
},
],
},
),

View file

@ -319,37 +319,37 @@ Module(
Dict(
ExprDict {
range: 386..394,
keys: [
Some(
StringLiteral(
ExprStringLiteral {
range: 387..390,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 387..390,
value: "a",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
items: [
DictItem {
key: Some(
StringLiteral(
ExprStringLiteral {
range: 387..390,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 387..390,
value: "a",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
},
),
),
},
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 392..393,
value: Int(
5,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 392..393,
value: Int(
5,
),
},
),
},
],
},
),

View file

@ -236,37 +236,37 @@ Module(
target: Dict(
ExprDict {
range: 186..194,
keys: [
Some(
StringLiteral(
ExprStringLiteral {
range: 187..190,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 187..190,
value: "a",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
items: [
DictItem {
key: Some(
StringLiteral(
ExprStringLiteral {
range: 187..190,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 187..190,
value: "a",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
},
),
),
},
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 192..193,
value: Int(
5,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 192..193,
value: Int(
5,
),
},
),
},
],
},
),

View file

@ -28,8 +28,7 @@ Module(
cls: Dict(
ExprDict {
range: 108..109,
keys: [],
values: [],
items: [],
},
),
arguments: PatternArguments {

View file

@ -263,25 +263,25 @@ Module(
left: Dict(
ExprDict {
range: 201..210,
keys: [
Some(
BooleanLiteral(
ExprBooleanLiteral {
range: 202..206,
value: true,
items: [
DictItem {
key: Some(
BooleanLiteral(
ExprBooleanLiteral {
range: 202..206,
value: true,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 208..209,
value: Int(
1,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 208..209,
value: Int(
1,
),
},
),
},
],
},
),
@ -711,25 +711,25 @@ Module(
right: Dict(
ExprDict {
range: 534..543,
keys: [
Some(
BooleanLiteral(
ExprBooleanLiteral {
range: 535..539,
value: true,
items: [
DictItem {
key: Some(
BooleanLiteral(
ExprBooleanLiteral {
range: 535..539,
value: true,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 541..542,
value: Int(
1,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 541..542,
value: Int(
1,
),
},
),
},
],
},
),

View file

@ -192,26 +192,26 @@ Module(
value: Dict(
ExprDict {
range: 76..82,
keys: [
Some(
Name(
ExprName {
range: 77..78,
id: "i",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 77..78,
id: "i",
ctx: Load,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 80..81,
value: Int(
5,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 80..81,
value: Int(
5,
),
},
),
},
],
},
),

View file

@ -360,45 +360,47 @@ Module(
func: Dict(
ExprDict {
range: 219..231,
keys: [
Some(
NumberLiteral(
items: [
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 220..221,
value: Int(
1,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 220..221,
range: 223..224,
value: Int(
1,
2,
),
},
),
),
Some(
NumberLiteral(
},
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
range: 226..227,
value: Int(
3,
),
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 226..227,
range: 229..230,
value: Int(
3,
4,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 223..224,
value: Int(
2,
),
},
),
NumberLiteral(
ExprNumberLiteral {
range: 229..230,
value: Int(
4,
),
},
),
},
],
},
),

View file

@ -823,104 +823,104 @@ Module(
value: Dict(
ExprDict {
range: 219..253,
keys: [
Some(
FString(
ExprFString {
range: 220..248,
value: FStringValue {
inner: Concatenated(
[
Literal(
StringLiteral {
range: 220..226,
value: "foo ",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
items: [
DictItem {
key: Some(
FString(
ExprFString {
range: 220..248,
value: FStringValue {
inner: Concatenated(
[
Literal(
StringLiteral {
range: 220..226,
value: "foo ",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
},
),
FString(
FString {
range: 227..242,
elements: [
Literal(
FStringLiteralElement {
range: 229..233,
value: "bar ",
},
),
Expression(
FStringExpressionElement {
range: 233..240,
expression: BinOp(
ExprBinOp {
range: 234..239,
left: Name(
ExprName {
range: 234..235,
id: "x",
ctx: Load,
},
),
op: Add,
right: Name(
ExprName {
range: 238..239,
id: "y",
ctx: Load,
},
),
},
),
debug_text: None,
conversion: None,
format_spec: None,
},
),
Literal(
FStringLiteralElement {
range: 240..241,
value: " ",
},
),
],
flags: FStringFlags {
quote_style: Double,
prefix: Regular,
triple_quoted: false,
),
FString(
FString {
range: 227..242,
elements: [
Literal(
FStringLiteralElement {
range: 229..233,
value: "bar ",
},
),
Expression(
FStringExpressionElement {
range: 233..240,
expression: BinOp(
ExprBinOp {
range: 234..239,
left: Name(
ExprName {
range: 234..235,
id: "x",
ctx: Load,
},
),
op: Add,
right: Name(
ExprName {
range: 238..239,
id: "y",
ctx: Load,
},
),
},
),
debug_text: None,
conversion: None,
format_spec: None,
},
),
Literal(
FStringLiteralElement {
range: 240..241,
value: " ",
},
),
],
flags: FStringFlags {
quote_style: Double,
prefix: Regular,
triple_quoted: false,
},
},
},
),
Literal(
StringLiteral {
range: 243..248,
value: "baz",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
),
Literal(
StringLiteral {
range: 243..248,
value: "baz",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
},
),
],
),
),
],
),
},
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 250..252,
value: Int(
10,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 250..252,
value: Int(
10,
),
},
),
},
],
},
),

View file

@ -652,26 +652,26 @@ Module(
Dict(
ExprDict {
range: 319..325,
keys: [
Some(
Name(
ExprName {
range: 320..321,
id: "a",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 320..321,
id: "a",
ctx: Load,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 323..324,
value: Int(
1,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 323..324,
value: Int(
1,
),
},
),
},
],
},
),

View file

@ -15,8 +15,7 @@ Module(
value: Dict(
ExprDict {
range: 14..16,
keys: [],
values: [],
items: [],
},
),
},
@ -139,8 +138,7 @@ Module(
value: Dict(
ExprDict {
range: 74..77,
keys: [],
values: [],
items: [],
},
),
},
@ -579,33 +577,35 @@ Module(
Dict(
ExprDict {
range: 300..311,
keys: [
Some(
Name(
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 301..302,
id: "a",
ctx: Load,
},
),
),
value: Name(
ExprName {
range: 301..302,
id: "a",
range: 304..305,
id: "b",
ctx: Load,
},
),
),
None,
],
values: [
Name(
ExprName {
range: 304..305,
id: "b",
ctx: Load,
},
),
Name(
ExprName {
range: 309..310,
id: "d",
ctx: Load,
},
),
},
DictItem {
key: None,
value: Name(
ExprName {
range: 309..310,
id: "d",
ctx: Load,
},
),
},
],
},
),

View file

@ -216,26 +216,26 @@ Module(
Dict(
ExprDict {
range: 85..91,
keys: [
Some(
Name(
ExprName {
range: 86..87,
id: "x",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 86..87,
id: "x",
ctx: Load,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 89..90,
value: Int(
5,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 89..90,
value: Int(
5,
),
},
),
},
],
},
),

View file

@ -192,26 +192,26 @@ Module(
value: Dict(
ExprDict {
range: 114..120,
keys: [
Some(
Name(
ExprName {
range: 115..116,
id: "x",
ctx: Load,
items: [
DictItem {
key: Some(
Name(
ExprName {
range: 115..116,
id: "x",
ctx: Load,
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 118..119,
value: Int(
5,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 118..119,
value: Int(
5,
),
},
),
},
],
},
),

View file

@ -3814,37 +3814,37 @@ Module(
subject: Dict(
ExprDict {
range: 2959..2970,
keys: [
Some(
StringLiteral(
ExprStringLiteral {
range: 2960..2966,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 2960..2966,
value: "test",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
items: [
DictItem {
key: Some(
StringLiteral(
ExprStringLiteral {
range: 2960..2966,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 2960..2966,
value: "test",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
},
),
),
},
},
),
),
value: NumberLiteral(
ExprNumberLiteral {
range: 2968..2969,
value: Int(
1,
),
},
),
),
],
values: [
NumberLiteral(
ExprNumberLiteral {
range: 2968..2969,
value: Int(
1,
),
},
),
},
],
},
),
@ -3907,16 +3907,36 @@ Module(
subject: Dict(
ExprDict {
range: 3032..3049,
keys: [
Some(
StringLiteral(
items: [
DictItem {
key: Some(
StringLiteral(
ExprStringLiteral {
range: 3033..3040,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 3033..3040,
value: "label",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
),
},
},
),
),
value: StringLiteral(
ExprStringLiteral {
range: 3033..3040,
range: 3042..3048,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 3033..3040,
value: "label",
range: 3042..3048,
value: "test",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
@ -3927,27 +3947,7 @@ Module(
},
},
),
),
],
values: [
StringLiteral(
ExprStringLiteral {
range: 3042..3048,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 3042..3048,
value: "test",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
),
},
},
),
},
],
},
),