Reimplement lowering of sym operands for asm! so that it also works with global_asm!
This commit is contained in:
parent
f9d4d12b6a
commit
dc345d8bff
28 changed files with 400 additions and 163 deletions
|
@ -1182,6 +1182,12 @@ impl<'a> Resolver<'a> {
|
|||
}
|
||||
return Res::Err;
|
||||
}
|
||||
InlineAsmSymRibKind => {
|
||||
if let Some(span) = finalize {
|
||||
self.report_error(span, InvalidAsmSym);
|
||||
}
|
||||
return Res::Err;
|
||||
}
|
||||
}
|
||||
}
|
||||
if let Some((span, res_err)) = res_err {
|
||||
|
@ -1242,6 +1248,22 @@ impl<'a> Resolver<'a> {
|
|||
}
|
||||
return Res::Err;
|
||||
}
|
||||
InlineAsmSymRibKind => {
|
||||
let features = self.session.features_untracked();
|
||||
if !features.generic_const_exprs {
|
||||
if let Some(span) = finalize {
|
||||
self.report_error(
|
||||
span,
|
||||
ResolutionError::ParamInNonTrivialAnonConst {
|
||||
name: rib_ident.name,
|
||||
is_type: true,
|
||||
},
|
||||
);
|
||||
}
|
||||
return Res::Err;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
};
|
||||
|
||||
if let Some(span) = finalize {
|
||||
|
@ -1306,6 +1328,22 @@ impl<'a> Resolver<'a> {
|
|||
}
|
||||
return Res::Err;
|
||||
}
|
||||
InlineAsmSymRibKind => {
|
||||
let features = self.session.features_untracked();
|
||||
if !features.generic_const_exprs {
|
||||
if let Some(span) = finalize {
|
||||
self.report_error(
|
||||
span,
|
||||
ResolutionError::ParamInNonTrivialAnonConst {
|
||||
name: rib_ident.name,
|
||||
is_type: false,
|
||||
},
|
||||
);
|
||||
}
|
||||
return Res::Err;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
};
|
||||
|
||||
// This was an attempt to use a const parameter outside its scope.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue