auto merge of #14696 : jakub-/rust/dead-struct-fields, r=alexcrichton
This uncovered some dead code, most notably in middle/liveness.rs, which I think suggests there must be something fishy with that part of the code. The #[allow(dead_code)] annotations on some of the fields I am not super happy about but as I understand, marker type may disappear at some point.
This commit is contained in:
commit
9bb8f88d3a
40 changed files with 223 additions and 148 deletions
|
|
@ -1053,6 +1053,15 @@ pub struct StructField_ {
|
|||
pub attrs: Vec<Attribute>,
|
||||
}
|
||||
|
||||
impl StructField_ {
|
||||
pub fn ident(&self) -> Option<Ident> {
|
||||
match self.kind {
|
||||
NamedField(ref ident, _) => Some(ident.clone()),
|
||||
UnnamedField(_) => None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub type StructField = Spanned<StructField_>;
|
||||
|
||||
#[deriving(Clone, PartialEq, Eq, Encodable, Decodable, Hash)]
|
||||
|
|
|
|||
|
|
@ -21,11 +21,6 @@ use parse::token::special_idents;
|
|||
use parse::token::InternedString;
|
||||
use parse::token;
|
||||
|
||||
pub struct Field {
|
||||
ident: ast::Ident,
|
||||
ex: @ast::Expr
|
||||
}
|
||||
|
||||
// Transitional reexports so qquote can find the paths it is looking for
|
||||
mod syntax {
|
||||
pub use ext;
|
||||
|
|
@ -1000,9 +995,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
|
|||
}
|
||||
}
|
||||
|
||||
struct Duplicator<'a> {
|
||||
cx: &'a ExtCtxt<'a>,
|
||||
}
|
||||
struct Duplicator<'a>;
|
||||
|
||||
impl<'a> Folder for Duplicator<'a> {
|
||||
fn new_id(&mut self, _: NodeId) -> NodeId {
|
||||
|
|
@ -1021,10 +1014,8 @@ pub trait Duplicate {
|
|||
}
|
||||
|
||||
impl Duplicate for @ast::Expr {
|
||||
fn duplicate(&self, cx: &ExtCtxt) -> @ast::Expr {
|
||||
let mut folder = Duplicator {
|
||||
cx: cx,
|
||||
};
|
||||
fn duplicate(&self, _: &ExtCtxt) -> @ast::Expr {
|
||||
let mut folder = Duplicator;
|
||||
folder.fold_expr(*self)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ use codemap::{CodeMap, BytePos};
|
|||
use codemap;
|
||||
use diagnostic;
|
||||
use parse::classify::expr_is_simple_block;
|
||||
use parse::token::IdentInterner;
|
||||
use parse::token;
|
||||
use parse::lexer::comments;
|
||||
use parse;
|
||||
|
|
@ -30,7 +29,6 @@ use print::pp;
|
|||
use std::io::{IoResult, MemWriter};
|
||||
use std::io;
|
||||
use std::mem;
|
||||
use std::rc::Rc;
|
||||
use std::str;
|
||||
use std::string::String;
|
||||
|
||||
|
|
@ -58,7 +56,6 @@ pub struct CurrentCommentAndLiteral {
|
|||
pub struct State<'a> {
|
||||
pub s: pp::Printer,
|
||||
cm: Option<&'a CodeMap>,
|
||||
intr: Rc<token::IdentInterner>,
|
||||
comments: Option<Vec<comments::Comment> >,
|
||||
literals: Option<Vec<comments::Literal> >,
|
||||
cur_cmnt_and_lit: CurrentCommentAndLiteral,
|
||||
|
|
@ -76,7 +73,6 @@ pub fn rust_printer_annotated<'a>(writer: Box<io::Writer>,
|
|||
State {
|
||||
s: pp::mk_printer(writer, default_columns),
|
||||
cm: None,
|
||||
intr: token::get_ident_interner(),
|
||||
comments: None,
|
||||
literals: None,
|
||||
cur_cmnt_and_lit: CurrentCommentAndLiteral {
|
||||
|
|
@ -111,7 +107,6 @@ pub fn print_crate<'a>(cm: &'a CodeMap,
|
|||
let mut s = State {
|
||||
s: pp::mk_printer(out, default_columns),
|
||||
cm: Some(cm),
|
||||
intr: token::get_ident_interner(),
|
||||
comments: Some(cmnts),
|
||||
// If the code is post expansion, don't use the table of
|
||||
// literals, since it doesn't correspond with the literals
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue