Add test case for which `syn` currently fails

This commit is contained in:
Łukasz Jan Niemier 2016-09-18 22:40:58 +02:00
parent 11f8289ed4
commit 43cfa25426
No known key found for this signature in database
GPG Key ID: C775391C950A6AEE
3 changed files with 34 additions and 2 deletions

View File

@ -25,7 +25,6 @@ pub fn from_primitive(input: TokenStream) -> TokenStream {
let source = input.to_string(); let source = input.to_string();
let ast = syn::parse_item(&source).unwrap(); let ast = syn::parse_item(&source).unwrap();
// panic!("{:?}", ast);
macro_rules! pathvec_std { macro_rules! pathvec_std {
($cx:expr, $first:ident :: $($rest:ident)::+) => ({ ($cx:expr, $first:ident :: $($rest:ident)::+) => ({

View File

@ -22,7 +22,7 @@ enum Color {
} }
#[test] #[test]
fn test_from_primitive() { fn test_from_primitive_for_trivial_case() {
let v: [Option<Color>; 4] = [num::FromPrimitive::from_u64(0), let v: [Option<Color>; 4] = [num::FromPrimitive::from_u64(0),
num::FromPrimitive::from_u64(1), num::FromPrimitive::from_u64(1),
num::FromPrimitive::from_u64(2), num::FromPrimitive::from_u64(2),

View File

@ -0,0 +1,33 @@
// Copyright 2013-2015 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.
#![feature(rustc_macro)]
extern crate num;
#[macro_use]
extern crate num_macros;
#[derive(Debug, PartialEq, FromPrimitive)]
enum Color {
Red,
Blue = 5,
Green,
}
#[test]
fn test_from_primitive_for_enum_with_custom_value() {
let v: [Option<Color>; 4] = [num::FromPrimitive::from_u64(0),
num::FromPrimitive::from_u64(5),
num::FromPrimitive::from_u64(6),
num::FromPrimitive::from_u64(3)];
assert_eq!(v,
[Some(Color::Red), Some(Color::Blue), Some(Color::Green), None]);
}