diff --git a/src/test/compile-fail/deriving-primitive.rs b/src/test/compile-fail/deriving-primitive.rs new file mode 100644 index 000000000000..435228d9efea --- /dev/null +++ b/src/test/compile-fail/deriving-primitive.rs @@ -0,0 +1,34 @@ +// Copyright 2013 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use std::num::FromPrimitive; +use std::int; + +#[deriving(FromPrimitive)] +struct A { x: int } +//~^^ ERROR `FromPrimitive` cannot be derived for structs +//~^^^ ERROR `FromPrimitive` cannot be derived for structs + +#[deriving(FromPrimitive)] +struct B(int); +//~^^ ERROR `FromPrimitive` cannot be derived for structs +//~^^^ ERROR `FromPrimitive` cannot be derived for structs + +#[deriving(FromPrimitive)] +enum C { Foo(int), Bar(uint) } +//~^^ ERROR `FromPrimitive` cannot be derived for enum variants with arguments +//~^^^ ERROR `FromPrimitive` cannot be derived for enum variants with arguments + +#[deriving(FromPrimitive)] +enum D { Baz { x: int } } +//~^^ ERROR `FromPrimitive` cannot be derived for enums with struct variants +//~^^^ ERROR `FromPrimitive` cannot be derived for enums with struct variants + +fn main() {}