mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev.
This commit is contained in:
parent
ff8cbff810
commit
95fc29fa0d
255 changed files with 3550 additions and 3362 deletions
|
@ -15,7 +15,7 @@ use syntax::parse::token::InternedString;
|
|||
pub fn expand_dom_struct(_: &mut ExtCtxt, _: Span, _: &MetaItem, item: P<Item>) -> P<Item> {
|
||||
let mut item2 = (*item).clone();
|
||||
{
|
||||
let add_attr = |s| {
|
||||
let mut add_attr = |&mut :s| {
|
||||
item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new(s))));
|
||||
};
|
||||
add_attr("must_root");
|
||||
|
@ -34,7 +34,7 @@ pub fn expand_dom_struct(_: &mut ExtCtxt, _: Span, _: &MetaItem, item: P<Item>)
|
|||
/// Provides the hook to expand `#[jstraceable]` into an implementation of `JSTraceable`
|
||||
///
|
||||
/// The expansion basically calls `trace()` on all of the fields of the struct/enum, erroring if they do not implement the method.
|
||||
pub fn expand_jstraceable(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, item: &Item, push: |P<Item>|) {
|
||||
pub fn expand_jstraceable(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, item: &Item, mut push: Box<FnMut(P<Item>)>) {
|
||||
let trait_def = TraitDef {
|
||||
span: span,
|
||||
attributes: Vec::new(),
|
||||
|
@ -51,13 +51,11 @@ pub fn expand_jstraceable(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, item:
|
|||
attributes: vec!(attr::mk_attr_outer(attr::mk_attr_id(),
|
||||
attr::mk_name_value_item_str(InternedString::new("inline"),
|
||||
InternedString::new("always")))),
|
||||
combine_substructure: combine_substructure(|a, b, c| {
|
||||
jstraceable_substructure(a, b, c)
|
||||
})
|
||||
combine_substructure: combine_substructure(box jstraceable_substructure)
|
||||
}
|
||||
)
|
||||
};
|
||||
trait_def.expand(cx, mitem, item, push)
|
||||
trait_def.expand(cx, mitem, item, |:a| push(a))
|
||||
}
|
||||
|
||||
// Mostly copied from syntax::ext::deriving::hash
|
||||
|
@ -68,7 +66,7 @@ fn jstraceable_substructure(cx: &mut ExtCtxt, trait_span: Span, substr: &Substru
|
|||
_ => cx.span_bug(trait_span, "incorrect number of arguments in `jstraceable`")
|
||||
};
|
||||
let trace_ident = substr.method_ident;
|
||||
let call_trace = |span, thing_expr| {
|
||||
let call_trace = |&:span, thing_expr| {
|
||||
let expr = cx.expr_method_call(span, thing_expr, trace_ident, vec!(state_expr.clone()));
|
||||
cx.stmt_expr(expr)
|
||||
};
|
||||
|
|
|
@ -12,15 +12,18 @@
|
|||
//! - `#[dom_struct]` : Implies `#[privatize]`,`#[jstraceable]`, and `#[must_root]`.
|
||||
//! Use this for structs that correspond to a DOM type
|
||||
|
||||
#![feature(macro_rules, plugin_registrar, quote, phase)]
|
||||
#![feature(plugin_registrar, quote, plugin, box_syntax)]
|
||||
|
||||
#![deny(unused_imports)]
|
||||
#![deny(unused_variables)]
|
||||
#![allow(missing_copy_implementations)]
|
||||
#![allow(unstable)]
|
||||
|
||||
#[phase(plugin,link)]
|
||||
#[plugin]
|
||||
#[macro_use]
|
||||
extern crate syntax;
|
||||
#[phase(plugin, link)]
|
||||
#[plugin]
|
||||
#[macro_use]
|
||||
extern crate rustc;
|
||||
|
||||
use rustc::lint::LintPassObject;
|
||||
|
@ -50,23 +53,3 @@ pub fn plugin_registrar(reg: &mut Registry) {
|
|||
reg.register_lint_pass(box lints::str_to_string::StrToStringPass as LintPassObject);
|
||||
reg.register_lint_pass(box lints::ban::BanPass as LintPassObject);
|
||||
}
|
||||
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! match_ignore_ascii_case {
|
||||
( $value: expr: $( $string: expr => $result: expr ),+ _ => $fallback: expr, ) => {
|
||||
match_ignore_ascii_case! { $value:
|
||||
$( $string => $result ),+
|
||||
_ => $fallback
|
||||
}
|
||||
};
|
||||
( $value: expr: $( $string: expr => $result: expr ),+ _ => $fallback: expr ) => {
|
||||
{
|
||||
use std::ascii::AsciiExt;
|
||||
match $value.as_slice() {
|
||||
$( s if s.eq_ignore_ascii_case($string) => $result, )+
|
||||
_ => $fallback
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ use rustc::lint::{Context, LintPass, LintArray};
|
|||
use utils::match_ty_unwrap;
|
||||
|
||||
declare_lint!(BANNED_TYPE, Deny,
|
||||
"Ban various unsafe type combinations")
|
||||
"Ban various unsafe type combinations");
|
||||
|
||||
/// Lint for banning various unsafe types
|
||||
///
|
||||
|
|
|
@ -9,7 +9,7 @@ use rustc::middle::{ty, def};
|
|||
use utils::match_lang_ty;
|
||||
|
||||
declare_lint!(INHERITANCE_INTEGRITY, Deny,
|
||||
"Ensures that struct fields are properly laid out for inheritance to work")
|
||||
"Ensures that struct fields are properly laid out for inheritance to work");
|
||||
|
||||
/// Lint for ensuring proper layout of DOM structs
|
||||
///
|
||||
|
|
|
@ -9,7 +9,7 @@ use rustc::lint::{Context, LintPass, LintArray};
|
|||
use rustc::middle::ty;
|
||||
|
||||
declare_lint!(PRIVATIZE, Deny,
|
||||
"Allows to enforce private fields for struct definitions")
|
||||
"Allows to enforce private fields for struct definitions");
|
||||
|
||||
/// Lint for keeping DOM fields private
|
||||
///
|
||||
|
|
|
@ -8,7 +8,7 @@ use rustc::middle::ty::expr_ty;
|
|||
use rustc::middle::ty;
|
||||
|
||||
declare_lint!(STR_TO_STRING, Deny,
|
||||
"Warn when a String could use to_owned() instead of to_string()")
|
||||
"Warn when a String could use to_owned() instead of to_string()");
|
||||
|
||||
/// Prefer str.to_owned() over str.to_string()
|
||||
///
|
||||
|
|
|
@ -9,7 +9,7 @@ use rustc::middle::ty::expr_ty;
|
|||
use rustc::util::ppaux::Repr;
|
||||
|
||||
declare_lint!(TRANSMUTE_TYPE_LINT, Allow,
|
||||
"Warn and report types being transmuted")
|
||||
"Warn and report types being transmuted");
|
||||
|
||||
/// Lint for auditing transmutes
|
||||
///
|
||||
|
|
|
@ -11,7 +11,7 @@ use rustc::util::ppaux::Repr;
|
|||
use utils::unsafe_context;
|
||||
|
||||
declare_lint!(UNROOTED_MUST_ROOT, Deny,
|
||||
"Warn and report usage of unrooted jsmanaged objects")
|
||||
"Warn and report usage of unrooted jsmanaged objects");
|
||||
|
||||
/// Lint for ensuring safe usage of unrooted pointers
|
||||
///
|
||||
|
@ -84,7 +84,7 @@ impl LintPass for UnrootedPass {
|
|||
return;
|
||||
},
|
||||
visit::FkItemFn(_, _, style, _) => match style {
|
||||
ast::UnsafeFn => return,
|
||||
ast::Unsafety::Unsafe => return,
|
||||
_ => ()
|
||||
},
|
||||
_ => ()
|
||||
|
|
|
@ -10,7 +10,7 @@ use syntax::ast;
|
|||
use utils::match_ty_unwrap;
|
||||
|
||||
|
||||
pub fn expand_reflector(cx: &mut ExtCtxt, span: Span, _: &MetaItem, item: &Item, push: |P<Item>|) {
|
||||
pub fn expand_reflector(cx: &mut ExtCtxt, span: Span, _: &MetaItem, item: &Item, mut push: Box<FnMut(P<Item>) -> ()>) {
|
||||
if let ast::ItemStruct(ref def, _) = item.node {
|
||||
let struct_name = item.ident;
|
||||
// This path has to be hardcoded, unfortunately, since we can't resolve paths at expansion time
|
||||
|
|
|
@ -70,7 +70,7 @@ pub fn unsafe_context(map: &ast_map::Map, id: ast::NodeId) -> bool {
|
|||
match *itm {
|
||||
ast::MethodImplItem(ref meth) => match meth.node {
|
||||
ast::MethDecl(_, _, _, _, style, _, _, _) => match style {
|
||||
ast::UnsafeFn => true,
|
||||
ast::Unsafety::Unsafe => true,
|
||||
_ => false,
|
||||
},
|
||||
_ => false,
|
||||
|
@ -81,7 +81,7 @@ pub fn unsafe_context(map: &ast_map::Map, id: ast::NodeId) -> bool {
|
|||
Some(ast_map::NodeItem(itm)) => {
|
||||
match itm.node {
|
||||
ast::ItemFn(_, style, _, _, _) => match style {
|
||||
ast::UnsafeFn => true,
|
||||
ast::Unsafety::Unsafe => true,
|
||||
_ => false,
|
||||
},
|
||||
_ => false,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue