make cfail test actually fail

This commit is contained in:
Jorge Aparicio 2019-02-23 21:54:56 +01:00
parent c749979c45
commit 72f0cc505a
2 changed files with 11 additions and 5 deletions

View file

@ -106,10 +106,16 @@ pub fn app(app: &App) -> parse::Result<()> {
}
// Check that free interrupts are not being used
for int in app.interrupts.keys() {
if app.free_interrupts.contains_key(int) {
for (name, interrupt) in &app.interrupts {
let name = if let Some(ref binds) = interrupt.args.binds {
binds
} else {
name
};
if app.free_interrupts.contains_key(name) {
return Err(parse::Error::new(
int.span(),
name.span(),
"free interrupts (`extern { .. }`) can't be used as interrupt handlers",
));
}

View file

@ -12,8 +12,8 @@ const APP: () = {
#[init]
fn init() {}
#[interrupt(binds = UART0)]
fn foo() {} //~ ERROR free interrupts (`extern { .. }`) can't be used as interrupt handlers
#[interrupt(binds = UART0)] //~ ERROR free interrupts (`extern { .. }`) can't be used as interrupt handlers
fn foo() {}
extern "C" {
fn UART0();