diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 0726104788c..a839de967ca 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -418,6 +418,7 @@ type ctxt = mut next_id: uint, vecs_implicitly_copyable: bool, legacy_modes: bool, + legacy_records: bool, cstore: metadata::cstore::CStore, sess: session::Session, def_map: resolve::DefMap, @@ -984,11 +985,16 @@ fn mk_ctxt(s: session::Session, +lang_items: middle::lang_items::LanguageItems, crate: @ast::crate) -> ctxt { let mut legacy_modes = false; + let mut legacy_records = false; for crate.node.attrs.each |attribute| { match attribute.node.value.node { ast::meta_word(ref w) if (*w) == ~"legacy_modes" => { legacy_modes = true; - break; + if legacy_records { break; } + } + ast::meta_word(ref w) if (*w) == ~"legacy_records" => { + legacy_records = true; + if legacy_modes { break; } } _ => {} } @@ -1003,6 +1009,7 @@ fn mk_ctxt(s: session::Session, mut next_id: 0u, vecs_implicitly_copyable: vecs_implicitly_copyable, legacy_modes: legacy_modes, + legacy_records: legacy_records, cstore: s.cstore, sess: s, def_map: dm,