rust/tests/consts.rs
2015-08-16 15:56:09 +02:00

35 lines
723 B
Rust

#![allow(plugin_as_library)]
#![feature(rustc_private)]
extern crate clippy;
extern crate syntax;
extern crate rustc;
use clippy::consts::constant;
use clippy::consts::ConstantVariant::*;
use syntax::ast::*;
use syntax::ptr::P;
use syntax::codemap::{Spanned, COMMAND_LINE_SP};
use std::mem;
use rustc::lint::Context;
fn ctx() -> &'static Context<'static, 'static> {
unsafe {
let x : *const Context<'static, 'static> = std::ptr::null();
mem::transmute(x)
}
}
#[test]
fn test_lit() {
assert_eq!(Some(ConstantBool(true)), constant(ctx(),
&Expr{
id: 1,
node: ExprLit(P(Spanned{
node: LitBool(true),
span: COMMAND_LINE_SP,
})),
span: COMMAND_LINE_SP,
}).map(|x| x.constant));
}