test for register_attribute()

This commit is contained in:
Manish Goregaokar 2015-05-07 14:58:36 +05:30
parent 8dc6e16933
commit d46eef9cf3
2 changed files with 60 additions and 0 deletions

View file

@ -0,0 +1,30 @@
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// force-host
#![feature(plugin_registrar)]
#![feature(rustc_private)]
extern crate syntax;
extern crate rustc;
use syntax::feature_gate::AttributeType;
use rustc::plugin::Registry;
#[plugin_registrar]
pub fn plugin_registrar(reg: &mut Registry) {
reg.register_attribute("foo".to_owned(), AttributeType::Normal);
reg.register_attribute("bar".to_owned(), AttributeType::CrateLevel);
reg.register_attribute("baz".to_owned(), AttributeType::Whitelisted);
}

View file

@ -0,0 +1,30 @@
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// aux-build:attr_plugin_test.rs
// ignore-stage1
#![feature(plugin)]
#![plugin(attr_plugin_test)]
#![deny(unused_attributes)]
#[baz]
fn baz() { } // no error
#[foo]
pub fn main() {
//~^^ ERROR unused
#[bar]
fn inner() {}
//~^^ ERROR crate
//~^^^ ERROR unused
baz();
inner();
}