@@ -1136,44 +1136,11 @@ Atom<Goal>: ast::Expr = {
1136
1136
}.into())
1137
1137
},
1138
1138
<location:@L> "{" <e:DictLiteralValues?> "}" <end_location:@R> => {
1139
- let pairs = e.unwrap_or_default();
1140
-
1141
- // let (keys, values) = match pairs.iter().position(|(k,_)| k.is_none()) {
1142
- // Some(unpack_idx) => {
1143
- // let mut pairs = pairs;
1144
- // let (keys, mut values): (_, Vec<_>) = pairs.drain(..unpack_idx).map(|(k, v)| (*k.unwrap(), v)).unzip();
1145
- //
1146
- // fn build_map(items: &mut Vec<(ast::Expr, ast::Expr)>) -> ast::Expr {
1147
- // let location = items[0].0.location;
1148
- // let end_location = items[0].0.end_location;
1149
- // let (keys, values) = items.drain(..).unzip();
1150
- // ast::Expr {
1151
- // location,
1152
- // end_location,
1153
- // custom: (),
1154
- // node: ast::ExprKind::Dict { keys, values }
1155
- // }
1156
- // }
1157
- //
1158
- // let mut items = Vec::new();
1159
- // for (key, value) in pairs.into_iter() {
1160
- // if let Some(key) = key {
1161
- // items.push((*key, value));
1162
- // continue;
1163
- // }
1164
- // if !items.is_empty() {
1165
- // values.push(build_map(&mut items));
1166
- // }
1167
- // values.push(value);
1168
- // }
1169
- // if !items.is_empty() {
1170
- // values.push(build_map(&mut items));
1171
- // }
1172
- // (keys, values)
1173
- // },
1174
- // None => pairs.into_iter().map(|(k, v)| (k, v)).unzip()
1175
- // };
1176
- let (keys, values) = pairs.into_iter().map(|(k, v)| (k.map(|x| *x), v)).unzip();
1139
+ let (keys, values) = e
1140
+ .unwrap_or_default()
1141
+ .into_iter()
1142
+ .map(|(k, v)| (k.map(|x| *x), v))
1143
+ .unzip();
1177
1144
ast::Expr {
1178
1145
location,
1179
1146
end_location: Some(end_location),
0 commit comments