Skip to content

Commit 02a18a6

Browse files
committed
Rebase fixup for lower.rs
1 parent 296c361 commit 02a18a6

File tree

2 files changed

+55
-37
lines changed

2 files changed

+55
-37
lines changed

src/librustc_front/fold.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -864,7 +864,7 @@ pub fn noop_fold_impl_item<T: Folder>(i: P<ImplItem>, folder: &mut T) -> P<ImplI
864864
pub fn noop_fold_mod<T: Folder>(Mod { inner, item_ids }: Mod, folder: &mut T) -> Mod {
865865
Mod {
866866
inner: folder.new_span(inner),
867-
items_ids: item_ids.move_map(|x| folder.fold_item_id(x)),
867+
item_ids: item_ids.move_map(|x| folder.fold_item_id(x)),
868868
}
869869
}
870870

src/librustc_front/lowering.rs

+54-36
Original file line numberDiff line numberDiff line change
@@ -986,16 +986,16 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
986986

987987
let make_call = |lctx: &LoweringContext, p, args| {
988988
let path = core_path(lctx, e.span, p);
989-
let path = expr_path(lctx, path);
990-
expr_call(lctx, e.span, path, args)
989+
let path = expr_path(lctx, path, None);
990+
expr_call(lctx, e.span, path, args, None)
991991
};
992992

993993
let mk_stmt_let = |lctx: &LoweringContext, bind, expr| {
994-
stmt_let(lctx, e.span, false, bind, expr)
994+
stmt_let(lctx, e.span, false, bind, expr, None)
995995
};
996996

997997
let mk_stmt_let_mut = |lctx: &LoweringContext, bind, expr| {
998-
stmt_let(lctx, e.span, true, bind, expr)
998+
stmt_let(lctx, e.span, true, bind, expr, None)
999999
};
10001000

10011001
// let placer = <placer_expr> ;
@@ -1004,21 +1004,22 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
10041004
vec![],
10051005
placer_expr,
10061006
e.span,
1007-
hir::PopUnstableBlock);
1007+
hir::PopUnstableBlock,
1008+
None);
10081009
mk_stmt_let(lctx, placer_ident, placer_expr)
10091010
};
10101011

10111012
// let mut place = Placer::make_place(placer);
10121013
let s2 = {
1013-
let placer = expr_ident(lctx, e.span, placer_ident);
1014+
let placer = expr_ident(lctx, e.span, placer_ident, None);
10141015
let call = make_call(lctx, &make_place, vec![placer]);
10151016
mk_stmt_let_mut(lctx, place_ident, call)
10161017
};
10171018

10181019
// let p_ptr = Place::pointer(&mut place);
10191020
let s3 = {
1020-
let agent = expr_ident(lctx, e.span, place_ident);
1021-
let args = vec![expr_mut_addr_of(lctx, e.span, agent)];
1021+
let agent = expr_ident(lctx, e.span, place_ident, None);
1022+
let args = vec![expr_mut_addr_of(lctx, e.span, agent, None)];
10221023
let call = make_call(lctx, &place_pointer, args);
10231024
mk_stmt_let(lctx, p_ptr_ident, call)
10241025
};
@@ -1029,40 +1030,42 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
10291030
vec![],
10301031
value_expr,
10311032
e.span,
1032-
hir::PopUnstableBlock);
1033+
hir::PopUnstableBlock,
1034+
None);
10331035
signal_block_expr(lctx,
10341036
vec![],
10351037
value_expr,
10361038
e.span,
1037-
hir::PopUnsafeBlock(hir::CompilerGenerated))
1039+
hir::PopUnsafeBlock(hir::CompilerGenerated), None)
10381040
};
10391041

10401042
// push_unsafe!({
10411043
// std::intrinsics::move_val_init(raw_place, pop_unsafe!( EXPR ));
10421044
// InPlace::finalize(place)
10431045
// })
10441046
let expr = {
1045-
let ptr = expr_ident(lctx, e.span, p_ptr_ident);
1047+
let ptr = expr_ident(lctx, e.span, p_ptr_ident, None);
10461048
let call_move_val_init =
10471049
hir::StmtSemi(
10481050
make_call(lctx, &move_val_init, vec![ptr, pop_unsafe_expr]),
10491051
lctx.next_id());
10501052
let call_move_val_init = respan(e.span, call_move_val_init);
10511053

1052-
let place = expr_ident(lctx, e.span, place_ident);
1054+
let place = expr_ident(lctx, e.span, place_ident, None);
10531055
let call = make_call(lctx, &inplace_finalize, vec![place]);
10541056
signal_block_expr(lctx,
10551057
vec![P(call_move_val_init)],
10561058
call,
10571059
e.span,
1058-
hir::PushUnsafeBlock(hir::CompilerGenerated))
1060+
hir::PushUnsafeBlock(hir::CompilerGenerated), None)
10591061
};
10601062

10611063
signal_block_expr(lctx,
10621064
vec![s1, s2, s3],
10631065
expr,
10641066
e.span,
1065-
hir::PushUnstableBlock)
1067+
hir::PushUnstableBlock,
1068+
e.attrs.clone())
10661069
});
10671070
}
10681071

@@ -1125,7 +1128,7 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
11251128
rules: hir::DefaultBlock,
11261129
span: span,
11271130
});
1128-
expr_block(lctx, blk)
1131+
expr_block(lctx, blk, None)
11291132
})
11301133
}
11311134
_ => lower_expr(lctx, els),
@@ -1241,7 +1244,7 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
12411244
// `<pat> => <body>`
12421245
let pat_arm = {
12431246
let body = lower_block(lctx, body);
1244-
let body_expr = expr_block(lctx, body);
1247+
let body_expr = expr_block(lctx, body, None);
12451248
arm(vec![lower_pat(lctx, pat)], body_expr)
12461249
};
12471250

@@ -1260,7 +1263,7 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
12601263
attrs: vec![],
12611264
pats: vec![pat_under],
12621265
guard: Some(cond),
1263-
body: expr_block(lctx, then),
1266+
body: expr_block(lctx, then, None),
12641267
});
12651268
else_opt.map(|else_opt| (else_opt, true))
12661269
}
@@ -1292,7 +1295,7 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
12921295
let pat_under = pat_wild(lctx, e.span);
12931296
let else_expr =
12941297
else_opt.unwrap_or_else(
1295-
|| expr_tuple(lctx, e.span, vec![]));
1298+
|| expr_tuple(lctx, e.span, vec![], None));
12961299
arm(vec![pat_under], else_expr)
12971300
};
12981301

@@ -1302,13 +1305,15 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
13021305
arms.push(else_arm);
13031306

13041307
let sub_expr = lower_expr(lctx, sub_expr);
1308+
// add attributes to the outer returned expr node
13051309
expr(lctx,
13061310
e.span,
13071311
hir::ExprMatch(sub_expr,
13081312
arms,
13091313
hir::MatchSource::IfLetDesugar {
13101314
contains_else_clause: contains_else_clause,
1311-
}))
1315+
}),
1316+
e.attrs.clone())
13121317
});
13131318
}
13141319

@@ -1328,14 +1333,14 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
13281333
// `<pat> => <body>`
13291334
let pat_arm = {
13301335
let body = lower_block(lctx, body);
1331-
let body_expr = expr_block(lctx, body);
1336+
let body_expr = expr_block(lctx, body, None);
13321337
arm(vec![lower_pat(lctx, pat)], body_expr)
13331338
};
13341339

13351340
// `_ => break`
13361341
let break_arm = {
13371342
let pat_under = pat_wild(lctx, e.span);
1338-
let break_expr = expr_break(lctx, e.span);
1343+
let break_expr = expr_break(lctx, e.span, None);
13391344
arm(vec![pat_under], break_expr)
13401345
};
13411346

@@ -1346,11 +1351,13 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
13461351
e.span,
13471352
hir::ExprMatch(sub_expr,
13481353
arms,
1349-
hir::MatchSource::WhileLetDesugar));
1354+
hir::MatchSource::WhileLetDesugar),
1355+
None);
13501356

13511357
// `[opt_ident]: loop { ... }`
13521358
let loop_block = block_expr(lctx, match_expr);
1353-
expr(lctx, e.span, hir::ExprLoop(loop_block, opt_ident))
1359+
// add attributes to the outer returned expr node
1360+
expr(lctx, e.span, hir::ExprLoop(loop_block, opt_ident), e.attrs.clone())
13541361
});
13551362
}
13561363

@@ -1387,6 +1394,7 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
13871394
id: lctx.next_id(),
13881395
node: hir::ExprBlock(body_block),
13891396
span: body_span,
1397+
attrs: None,
13901398
});
13911399
let pat = lower_pat(lctx, pat);
13921400
let some_pat = pat_some(lctx, e.span, pat);
@@ -1396,7 +1404,7 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
13961404

13971405
// `::std::option::Option::None => break`
13981406
let break_arm = {
1399-
let break_expr = expr_break(lctx, e.span);
1407+
let break_expr = expr_break(lctx, e.span, None);
14001408

14011409
arm(vec![pat_none(lctx, e.span)], break_expr)
14021410
};
@@ -1408,20 +1416,28 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
14081416

14091417
path_global(e.span, strs)
14101418
};
1411-
let iter = expr_ident(lctx, e.span, iter);
1412-
let ref_mut_iter = expr_mut_addr_of(lctx, e.span, iter);
1413-
let next_path = expr_path(lctx, next_path);
1414-
let next_expr = expr_call(lctx, e.span, next_path, vec![ref_mut_iter]);
1419+
let iter = expr_ident(lctx, e.span, iter, None);
1420+
let ref_mut_iter = expr_mut_addr_of(lctx, e.span, iter, None);
1421+
let next_path = expr_path(lctx, next_path, None);
1422+
let next_expr = expr_call(lctx,
1423+
e.span,
1424+
next_path,
1425+
vec![ref_mut_iter],
1426+
None);
14151427
let arms = vec![pat_arm, break_arm];
14161428

14171429
expr(lctx,
14181430
e.span,
1419-
hir::ExprMatch(next_expr, arms, hir::MatchSource::ForLoopDesugar))
1431+
hir::ExprMatch(next_expr, arms, hir::MatchSource::ForLoopDesugar),
1432+
None)
14201433
};
14211434

14221435
// `[opt_ident]: loop { ... }`
14231436
let loop_block = block_expr(lctx, match_expr);
1424-
let loop_expr = expr(lctx, e.span, hir::ExprLoop(loop_block, opt_ident));
1437+
let loop_expr = expr(lctx,
1438+
e.span,
1439+
hir::ExprLoop(loop_block, opt_ident),
1440+
None);
14251441

14261442
// `mut iter => { ... }`
14271443
let iter_arm = {
@@ -1440,22 +1456,24 @@ pub fn lower_expr(lctx: &LoweringContext, e: &Expr) -> P<hir::Expr> {
14401456
path_global(e.span, strs)
14411457
};
14421458

1443-
let into_iter = expr_path(lctx, into_iter_path);
1444-
expr_call(lctx, e.span, into_iter, vec![head])
1459+
let into_iter = expr_path(lctx, into_iter_path, None);
1460+
expr_call(lctx, e.span, into_iter, vec![head], None)
14451461
};
14461462

14471463
let match_expr = expr_match(lctx,
14481464
e.span,
14491465
into_iter_expr,
14501466
vec![iter_arm],
1451-
hir::MatchSource::ForLoopDesugar);
1467+
hir::MatchSource::ForLoopDesugar,
1468+
None);
14521469

14531470
// `{ let result = ...; result }`
14541471
let result_ident = lctx.str_to_ident("result");
1455-
let let_stmt = stmt_let(lctx, e.span, false, result_ident, match_expr);
1456-
let result = expr_ident(lctx, e.span, result_ident);
1472+
let let_stmt = stmt_let(lctx, e.span, false, result_ident, match_expr, None);
1473+
let result = expr_ident(lctx, e.span, result_ident, None);
14571474
let block = block_all(lctx, e.span, vec![let_stmt], Some(result));
1458-
expr_block(lctx, block)
1475+
// add the attributes to the outer returned expr node
1476+
expr_block(lctx, block, e.attrs.clone())
14591477
});
14601478
}
14611479

0 commit comments

Comments
 (0)