提交 49b76a08 编写于 作者: N Niko Matsakis

Fallout in libsyntax

上级 d9530c01
......@@ -15,7 +15,7 @@
use std::fmt;
#[derive(Copy, PartialEq, Eq, Debug)]
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
pub enum Os {
OsWindows,
OsMacos,
......@@ -49,7 +49,7 @@ pub enum Abi {
}
#[allow(non_camel_case_types)]
#[derive(Copy, PartialEq, Debug)]
#[derive(Copy, Clone, PartialEq, Debug)]
pub enum Architecture {
X86,
X86_64,
......@@ -58,7 +58,7 @@ pub enum Architecture {
Mipsel
}
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct AbiData {
abi: Abi,
......@@ -66,7 +66,7 @@ pub struct AbiData {
name: &'static str,
}
#[derive(Copy)]
#[derive(Copy, Clone)]
pub enum AbiArchitecture {
/// Not a real ABI (e.g., intrinsic)
RustArch,
......
......@@ -40,7 +40,7 @@
/// - The default implementation for a trait method.
///
/// To construct one, use the `Code::from_node` function.
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct FnLikeNode<'a> { node: ast_map::Node<'a> }
/// MaybeFnLike wraps a method that indicates if an object
......@@ -80,7 +80,7 @@ fn is_fn_like(&self) -> bool {
/// Carries either an FnLikeNode or a Block, as these are the two
/// constructs that correspond to "code" (as in, something from which
/// we can construct a control-flow graph).
#[derive(Copy)]
#[derive(Copy, Clone)]
pub enum Code<'a> {
FnLikeCode(FnLikeNode<'a>),
BlockCode(&'a Block),
......
......@@ -90,7 +90,7 @@ pub fn path_to_string<PI: Iterator<Item=PathElem>>(path: PI) -> String {
})
}
#[derive(Copy, Debug)]
#[derive(Copy, Clone, Debug)]
pub enum Node<'ast> {
NodeItem(&'ast Item),
NodeForeignItem(&'ast ForeignItem),
......
......@@ -291,7 +291,7 @@ pub fn empty_generics() -> Generics {
// ______________________________________________________________________
// Enumerating the IDs which appear in an AST
#[derive(RustcEncodable, RustcDecodable, Debug, Copy)]
#[derive(Copy, Clone, RustcEncodable, RustcDecodable, Debug)]
pub struct IdRange {
pub min: NodeId,
pub max: NodeId,
......
......@@ -282,7 +282,7 @@ pub fn find_crate_name(attrs: &[Attribute]) -> Option<InternedString> {
first_attr_value_str_by_name(attrs, "crate_name")
}
#[derive(Copy, PartialEq)]
#[derive(Copy, Clone, PartialEq)]
pub enum InlineAttr {
None,
Hint,
......@@ -571,7 +571,7 @@ fn int_type_of_word(s: &str) -> Option<IntType> {
}
}
#[derive(PartialEq, Debug, RustcEncodable, RustcDecodable, Copy)]
#[derive(PartialEq, Debug, RustcEncodable, RustcDecodable, Copy, Clone)]
pub enum ReprAttr {
ReprAny,
ReprInt(Span, IntType),
......@@ -590,7 +590,7 @@ pub fn is_ffi_safe(&self) -> bool {
}
}
#[derive(Eq, Hash, PartialEq, Debug, RustcEncodable, RustcDecodable, Copy)]
#[derive(Eq, Hash, PartialEq, Debug, RustcEncodable, RustcDecodable, Copy, Clone)]
pub enum IntType {
SignedInt(ast::IntTy),
UnsignedInt(ast::UintTy)
......
......@@ -47,7 +47,7 @@ pub trait Pos {
/// A character offset. Because of multibyte utf8 characters, a byte offset
/// is not equivalent to a character offset. The CodeMap will convert BytePos
/// values to CharPos values as necessary.
#[derive(Copy, PartialEq, Hash, PartialOrd, Debug)]
#[derive(Copy, Clone, PartialEq, Hash, PartialOrd, Debug)]
pub struct CharPos(pub usize);
// FIXME: Lots of boilerplate in these impls, but so far my attempts to fix
......@@ -305,7 +305,7 @@ pub struct FileLines {
}
/// Identifies an offset of a multi-byte character in a FileMap
#[derive(Copy, RustcEncodable, RustcDecodable, Eq, PartialEq)]
#[derive(Copy, Clone, RustcEncodable, RustcDecodable, Eq, PartialEq)]
pub struct MultiByteChar {
/// The absolute offset of the character in the CodeMap
pub pos: BytePos,
......
......@@ -71,12 +71,12 @@ fn custom_emit(&mut self, cm: &codemap::CodeMap,
/// This structure is used to signify that a task has panicked with a fatal error
/// from the diagnostics. You can use this with the `Any` trait to figure out
/// how a rustc task died (if so desired).
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct FatalError;
/// Signifies that the compiler died with an explicit call to `.bug`
/// or `.span_bug` rather than a failed assertion, etc.
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct ExplicitBug;
/// A span-handler is like a handler but also
......
......@@ -318,7 +318,7 @@ fn make_pat(self: Box<Self>) -> Option<P<ast::Pat>> {
/// Fill-in macro expansion result, to allow compilation to continue
/// after hitting errors.
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct DummyResult {
expr_only: bool,
span: Span
......
......@@ -84,7 +84,7 @@ pub fn expand_deriving_ord<F>(cx: &mut ExtCtxt,
trait_def.expand(cx, mitem, item, push)
}
#[derive(Copy)]
#[derive(Copy, Clone)]
pub enum OrderingOp {
PartialCmpOp, LtOp, LeOp, GtOp, GeOp,
}
......
......@@ -38,7 +38,7 @@ pub struct SCTable {
rename_memo: RefCell<HashMap<(SyntaxContext,Ident,Name),SyntaxContext>>,
}
#[derive(PartialEq, RustcEncodable, RustcDecodable, Hash, Debug, Copy)]
#[derive(PartialEq, RustcEncodable, RustcDecodable, Hash, Debug, Copy, Clone)]
pub enum SyntaxContext_ {
EmptyCtxt,
Mark (Mrk,SyntaxContext),
......
......@@ -286,7 +286,7 @@ enum Status {
("recursion_limit", CrateLevel),
];
#[derive(PartialEq, Copy, Debug)]
#[derive(PartialEq, Copy, Clone, Debug)]
pub enum AttributeType {
/// Normal, builtin attribute that is consumed
/// by the compiler before the unused_attribute check
......
......@@ -20,7 +20,7 @@
use ptr::P;
/// The specific types of unsupported syntax
#[derive(Copy, PartialEq, Eq, Hash)]
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
pub enum ObsoleteSyntax {
ClosureKind,
ExternCrateString,
......
......@@ -96,7 +96,7 @@
/// How to parse a path. There are four different kinds of paths, all of which
/// are parsed somewhat differently.
#[derive(Copy, PartialEq)]
#[derive(Copy, Clone, PartialEq)]
pub enum PathParsingMode {
/// A path with no type parameters; e.g. `foo::bar::Baz`
NoTypesAllowed,
......@@ -109,7 +109,7 @@ pub enum PathParsingMode {
}
/// How to parse a bound, whether to allow bound modifiers such as `?`.
#[derive(Copy, PartialEq)]
#[derive(Copy, Clone, PartialEq)]
pub enum BoundParsingMode {
Bare,
Modified,
......
......@@ -147,13 +147,13 @@ pub fn buf_str(toks: &[Token],
s
}
#[derive(Copy)]
#[derive(Copy, Clone)]
pub enum PrintStackBreak {
Fits,
Broken(Breaks),
}
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct PrintStackElem {
offset: isize,
pbreak: PrintStackBreak
......
......@@ -46,12 +46,12 @@ fn pre(&self, _state: &mut State, _node: AnnNode) -> io::Result<()> { Ok(()) }
fn post(&self, _state: &mut State, _node: AnnNode) -> io::Result<()> { Ok(()) }
}
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct NoAnn;
impl PpAnn for NoAnn {}
#[derive(Copy)]
#[derive(Copy, Clone)]
pub struct CurrentCommentAndLiteral {
cur_cmnt: usize,
cur_lit: usize,
......
......@@ -32,7 +32,7 @@
use ptr::P;
use owned_slice::OwnedSlice;
#[derive(Copy)]
#[derive(Copy, Clone)]
pub enum FnKind<'a> {
/// fn foo() or extern "Abi" fn foo()
FkItemFn(Ident, &'a Generics, Unsafety, Abi),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册