Skip to content

Commit 679f4dd

Browse files
authored
Merge branch 'rust-lang:master' into ignore-message
2 parents 2f85ee3 + 1882597 commit 679f4dd

File tree

187 files changed

+2233
-807
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

187 files changed

+2233
-807
lines changed

compiler/rustc_ast/src/attr/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ impl AttrItem {
230230
}
231231

232232
pub fn meta_kind(&self) -> Option<MetaItemKind> {
233-
Some(MetaItemKind::from_mac_args(&self.args)?)
233+
MetaItemKind::from_mac_args(&self.args)
234234
}
235235
}
236236

compiler/rustc_ast_lowering/src/asm.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,14 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
129129
.operands
130130
.iter()
131131
.map(|(op, op_sp)| {
132-
let lower_reg = |reg| match reg {
132+
let lower_reg = |reg, is_clobber| match reg {
133133
InlineAsmRegOrRegClass::Reg(s) => {
134134
asm::InlineAsmRegOrRegClass::Reg(if let Some(asm_arch) = asm_arch {
135135
asm::InlineAsmReg::parse(
136136
asm_arch,
137137
&sess.target_features,
138138
&sess.target,
139+
is_clobber,
139140
s,
140141
)
141142
.unwrap_or_else(|e| {
@@ -162,24 +163,24 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
162163

163164
let op = match *op {
164165
InlineAsmOperand::In { reg, ref expr } => hir::InlineAsmOperand::In {
165-
reg: lower_reg(reg),
166+
reg: lower_reg(reg, false),
166167
expr: self.lower_expr_mut(expr),
167168
},
168169
InlineAsmOperand::Out { reg, late, ref expr } => hir::InlineAsmOperand::Out {
169-
reg: lower_reg(reg),
170+
reg: lower_reg(reg, expr.is_none()),
170171
late,
171172
expr: expr.as_ref().map(|expr| self.lower_expr_mut(expr)),
172173
},
173174
InlineAsmOperand::InOut { reg, late, ref expr } => {
174175
hir::InlineAsmOperand::InOut {
175-
reg: lower_reg(reg),
176+
reg: lower_reg(reg, false),
176177
late,
177178
expr: self.lower_expr_mut(expr),
178179
}
179180
}
180181
InlineAsmOperand::SplitInOut { reg, late, ref in_expr, ref out_expr } => {
181182
hir::InlineAsmOperand::SplitInOut {
182-
reg: lower_reg(reg),
183+
reg: lower_reg(reg, false),
183184
late,
184185
in_expr: self.lower_expr_mut(in_expr),
185186
out_expr: out_expr.as_ref().map(|expr| self.lower_expr_mut(expr)),

compiler/rustc_ast_lowering/src/block.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
9797
let ty = l
9898
.ty
9999
.as_ref()
100-
.map(|t| self.lower_ty(t, ImplTraitContext::Disallowed(ImplTraitPosition::Binding)));
100+
.map(|t| self.lower_ty(t, ImplTraitContext::Disallowed(ImplTraitPosition::Variable)));
101101
let init = l.kind.init().map(|init| self.lower_expr(init));
102102
let hir_id = self.lower_node_id(l.id);
103103
let pat = self.lower_pat(&l.pat);
@@ -127,7 +127,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
127127
let ty = local
128128
.ty
129129
.as_ref()
130-
.map(|t| self.lower_ty(t, ImplTraitContext::Disallowed(ImplTraitPosition::Binding)));
130+
.map(|t| self.lower_ty(t, ImplTraitContext::Disallowed(ImplTraitPosition::Variable)));
131131
let span = self.lower_span(local.span);
132132
let span = self.mark_span_with_reason(DesugaringKind::LetElse, span, None);
133133
let init = self.lower_expr(init);

compiler/rustc_ast_lowering/src/expr.rs

+16-10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use crate::{FnDeclKind, ImplTraitPosition};
2+
13
use super::{ImplTraitContext, LoweringContext, ParamMode, ParenthesizedGenericArgs};
24

35
use rustc_ast::attr;
@@ -53,7 +55,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
5355
ParamMode::Optional,
5456
0,
5557
ParenthesizedGenericArgs::Err,
56-
ImplTraitContext::disallowed(),
58+
ImplTraitContext::Disallowed(ImplTraitPosition::Path),
5759
));
5860
let args = self.lower_exprs(args);
5961
hir::ExprKind::MethodCall(hir_seg, args, self.lower_span(span))
@@ -74,12 +76,14 @@ impl<'hir> LoweringContext<'_, 'hir> {
7476
}
7577
ExprKind::Cast(ref expr, ref ty) => {
7678
let expr = self.lower_expr(expr);
77-
let ty = self.lower_ty(ty, ImplTraitContext::disallowed());
79+
let ty =
80+
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Type));
7881
hir::ExprKind::Cast(expr, ty)
7982
}
8083
ExprKind::Type(ref expr, ref ty) => {
8184
let expr = self.lower_expr(expr);
82-
let ty = self.lower_ty(ty, ImplTraitContext::disallowed());
85+
let ty =
86+
self.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::Type));
8387
hir::ExprKind::Type(expr, ty)
8488
}
8589
ExprKind::AddrOf(k, m, ref ohs) => {
@@ -203,7 +207,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
203207
qself,
204208
path,
205209
ParamMode::Optional,
206-
ImplTraitContext::disallowed(),
210+
ImplTraitContext::Disallowed(ImplTraitPosition::Path),
207211
);
208212
hir::ExprKind::Path(qpath)
209213
}
@@ -239,7 +243,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
239243
&se.qself,
240244
&se.path,
241245
ParamMode::Optional,
242-
ImplTraitContext::disallowed(),
246+
ImplTraitContext::Disallowed(ImplTraitPosition::Path),
243247
)),
244248
self.arena
245249
.alloc_from_iter(se.fields.iter().map(|x| self.lower_expr_field(x))),
@@ -538,7 +542,9 @@ impl<'hir> LoweringContext<'_, 'hir> {
538542
body: impl FnOnce(&mut Self) -> hir::Expr<'hir>,
539543
) -> hir::ExprKind<'hir> {
540544
let output = match ret_ty {
541-
Some(ty) => hir::FnRetTy::Return(self.lower_ty(&ty, ImplTraitContext::disallowed())),
545+
Some(ty) => hir::FnRetTy::Return(
546+
self.lower_ty(&ty, ImplTraitContext::Disallowed(ImplTraitPosition::AsyncBlock)),
547+
),
542548
None => hir::FnRetTy::DefaultReturn(self.lower_span(span)),
543549
};
544550

@@ -827,7 +833,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
827833
});
828834

829835
// Lower outside new scope to preserve `is_in_loop_condition`.
830-
let fn_decl = self.lower_fn_decl(decl, None, false, None);
836+
let fn_decl = self.lower_fn_decl(decl, None, FnDeclKind::Closure, None);
831837

832838
hir::ExprKind::Closure(
833839
capture_clause,
@@ -919,7 +925,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
919925
// We need to lower the declaration outside the new scope, because we
920926
// have to conserve the state of being inside a loop condition for the
921927
// closure argument types.
922-
let fn_decl = self.lower_fn_decl(&outer_decl, None, false, None);
928+
let fn_decl = self.lower_fn_decl(&outer_decl, None, FnDeclKind::Closure, None);
923929

924930
hir::ExprKind::Closure(
925931
capture_clause,
@@ -1064,7 +1070,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
10641070
qself,
10651071
path,
10661072
ParamMode::Optional,
1067-
ImplTraitContext::disallowed(),
1073+
ImplTraitContext::Disallowed(ImplTraitPosition::Path),
10681074
);
10691075
// Destructure like a tuple struct.
10701076
let tuple_struct_pat =
@@ -1089,7 +1095,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
10891095
&se.qself,
10901096
&se.path,
10911097
ParamMode::Optional,
1092-
ImplTraitContext::disallowed(),
1098+
ImplTraitContext::Disallowed(ImplTraitPosition::Path),
10931099
);
10941100
let fields_omitted = match &se.rest {
10951101
StructRest::Base(e) => {

0 commit comments

Comments
 (0)