]> git.lizzy.rs Git - rust.git/commitdiff
rollup merge of #20721: japaric/snap
authorAlex Crichton <alex@alexcrichton.com>
Thu, 8 Jan 2015 01:26:58 +0000 (17:26 -0800)
committerAlex Crichton <alex@alexcrichton.com>
Thu, 8 Jan 2015 01:26:58 +0000 (17:26 -0800)
Conflicts:
src/libcollections/vec.rs
src/libcore/fmt/mod.rs
src/librustc/lint/builtin.rs
src/librustc/session/config.rs
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/context.rs
src/librustc_trans/trans/type_.rs
src/librustc_typeck/check/_match.rs
src/librustdoc/html/format.rs
src/libsyntax/std_inject.rs
src/libsyntax/util/interner.rs
src/test/compile-fail/mut-pattern-mismatched.rs

49 files changed:
1  2 
src/libcollections/bit.rs
src/libcollections/ring_buf.rs
src/libcollections/string.rs
src/libcollections/vec.rs
src/libcore/fmt/mod.rs
src/libcore/iter.rs
src/libcore/num/mod.rs
src/libcore/option.rs
src/libfmt_macros/lib.rs
src/libgetopts/lib.rs
src/libgraphviz/lib.rs
src/liblog/lib.rs
src/librand/lib.rs
src/librbml/lib.rs
src/librustc/lint/builtin.rs
src/librustc/lint/context.rs
src/librustc/metadata/csearch.rs
src/librustc/metadata/decoder.rs
src/librustc/metadata/encoder.rs
src/librustc/middle/ty.rs
src/librustc/session/config.rs
src/librustc/util/ppaux.rs
src/librustc_back/svh.rs
src/librustc_back/target/mod.rs
src/librustc_driver/lib.rs
src/librustc_resolve/lib.rs
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/context.rs
src/librustc_trans/trans/monomorphize.rs
src/librustc_trans/trans/type_.rs
src/librustc_typeck/lib.rs
src/librustdoc/clean/mod.rs
src/librustdoc/html/format.rs
src/libserialize/json.rs
src/libstd/path/mod.rs
src/libstd/path/posix.rs
src/libstd/path/windows.rs
src/libsyntax/ast.rs
src/libsyntax/ast_map/mod.rs
src/libsyntax/ast_util.rs
src/libsyntax/codemap.rs
src/libsyntax/parse/parser.rs
src/libsyntax/std_inject.rs
src/libsyntax/util/interner.rs
src/libtest/lib.rs
src/test/compile-fail/packed-struct-generic-transmute.rs
src/test/run-pass/drop-trait-enum.rs
src/test/run-pass/issue-17503.rs
src/test/run-pass/repeated-vector-syntax.rs

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 9d7e833e711da7a79c73f70210e0340116f0cb38,41d237dba2e1a1f3145b4e1663d0522d99a284ed..7c210351f3121af01fda490438a9abd8d7e52f68
@@@ -1675,29 -1667,16 +1675,29 @@@ impl Stability 
              _ => return
          };
  
 -        let msg = match stability {
 -            Some(attr::Stability { text: Some(ref s), .. }) => {
 -                format!("use of {} item: {}", label, *s)
 +        output(cx, span, stability, lint, label);
 +        if cross_crate && stability::is_staged_api(cx.tcx, id) {
 +            if lint.name == UNSTABLE.name {
 +                output(cx, span, stability, STAGED_UNSTABLE, label);
 +            } else if lint.name == EXPERIMENTAL.name {
 +                output(cx, span, stability, STAGED_EXPERIMENTAL, label);
              }
 -            _ => format!("use of {} item", label)
 -        };
 +        }
  
 -        cx.span_lint(lint, span, &msg[]);
 +        fn output(cx: &Context, span: Span, stability: &Option<attr::Stability>,
 +                  lint: &'static Lint, label: &'static str) {
 +            let msg = match *stability {
 +                Some(attr::Stability { text: Some(ref s), .. }) => {
 +                    format!("use of {} item: {}", label, *s)
 +                }
 +                _ => format!("use of {} item", label)
 +            };
 +
-             cx.span_lint(lint, span, msg.index(&FullRange));
++            cx.span_lint(lint, span, &msg[]);
 +        }
      }
  
 +
      fn is_internal(&self, cx: &Context, span: Span) -> bool {
          cx.tcx.sess.codemap().span_is_internal(span)
      }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index b239b0dac47ce7b1726b82c96c6a2015eb53c4f4,a4e72bc0a8a3e1b4d3f73a016dce19c5e8796f3b..327d4446095ca84727a7c3ff55ea731be08113ab
@@@ -610,10 -592,10 +610,10 @@@ pub fn default_lib_output() -> CrateTyp
  pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
      use syntax::parse::token::intern_and_get_ident as intern;
  
-     let end = sess.target.target.target_endian.index(&FullRange);
-     let arch = sess.target.target.arch.index(&FullRange);
-     let wordsz = sess.target.target.target_pointer_width.index(&FullRange);
-     let os = sess.target.target.target_os.index(&FullRange);
+     let end = &sess.target.target.target_endian[];
+     let arch = &sess.target.target.arch[];
 -    let wordsz = &sess.target.target.target_word_size[];
++    let wordsz = &sess.target.target.target_pointer_width[];
+     let os = &sess.target.target.target_os[];
  
      let fam = match sess.target.target.options.is_like_windows {
          true  => InternedString::new("windows"),
@@@ -661,11 -643,11 +661,11 @@@ pub fn build_target_config(opts: &Optio
      }
      };
  
-     let (int_type, uint_type) = match target.target_pointer_width.index(&FullRange) {
 -    let (int_type, uint_type) = match &target.target_word_size[] {
++    let (int_type, uint_type) = match &target.target_pointer_width[] {
          "32" => (ast::TyI32, ast::TyU32),
          "64" => (ast::TyI64, ast::TyU64),
-         w    => sp.handler().fatal((format!("target specification was invalid: unrecognized \
-                                             target-word-size {}", w)).index(&FullRange))
+         w    => sp.handler().fatal(&format!("target specification was invalid: unrecognized \
+                                             target-word-size {}", w)[])
      };
  
      Config {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 39632f2b084e96a22eff9f73f2ddf64c21abd907,47a296b99a3054da65eeb89f1d68748b9338c355..78fe7861854dd351cfc548da43c849c9b708c638
@@@ -1128,7 -1128,7 +1128,7 @@@ pub fn call_lifetime_end(cx: Block, ptr
  pub fn call_memcpy(cx: Block, dst: ValueRef, src: ValueRef, n_bytes: ValueRef, align: u32) {
      let _icx = push_ctxt("call_memcpy");
      let ccx = cx.ccx();
-     let key = match ccx.sess().target.target.target_pointer_width.index(&FullRange) {
 -    let key = match &ccx.sess().target.target.target_word_size[] {
++    let key = match &ccx.sess().target.target.target_pointer_width[] {
          "32" => "llvm.memcpy.p0i8.p0i8.i32",
          "64" => "llvm.memcpy.p0i8.p0i8.i64",
          tws => panic!("Unsupported target word size for memcpy: {}", tws),
@@@ -1175,7 -1175,7 +1175,7 @@@ fn memzero<'a, 'tcx>(b: &Builder<'a, 't
  
      let llty = type_of::type_of(ccx, ty);
  
-     let intrinsic_key = match ccx.sess().target.target.target_pointer_width.index(&FullRange) {
 -    let intrinsic_key = match &ccx.sess().target.target.target_word_size[] {
++    let intrinsic_key = match &ccx.sess().target.target.target_pointer_width[] {
          "32" => "llvm.memset.p0i8.i32",
          "64" => "llvm.memset.p0i8.i64",
          tws => panic!("Unsupported target word size for memset: {}", tws),
index d450ce24de7bdc84ed51c1f2b104ee1356d9a702,68773656056fac169dc8aaa3570967bf5bc49986..1abf3b0b886cca3b5387f47590181f54f1679c83
@@@ -721,7 -721,7 +721,7 @@@ impl<'b, 'tcx> CrateContext<'b, 'tcx> 
      /// currently conservatively bounded to 1 << 47 as that is enough to cover the current usable
      /// address space on 64-bit ARMv8 and x86_64.
      pub fn obj_size_bound(&self) -> u64 {
-         match self.sess().target.target.target_pointer_width.index(&FullRange) {
 -        match &self.sess().target.target.target_word_size[] {
++        match &self.sess().target.target.target_pointer_width[] {
              "32" => 1 << 31,
              "64" => 1 << 47,
              _ => unreachable!() // error handled by config::build_target_config
index cc98ee9592b0f8a6af2bebf88e801a5374bc21fd,dd8cb90f1a609ecd65300dd51cf76afbbf9c6186..6d2288e913fb3f7d24465e13216a08e4ce396b6d
@@@ -129,9 -129,9 +129,9 @@@ pub fn monomorphic_fn<'a, 'tcx>(ccx: &C
          hash_id.hash(&mut state);
          mono_ty.hash(&mut state);
  
 -        hash = format!("h{}", state.result());
 +        hash = format!("h{}", state.finish());
          ccx.tcx().map.with_path(fn_id.node, |path| {
-             exported_name(path, hash.index(&FullRange))
+             exported_name(path, &hash[])
          })
      };
  
index 2e236154d48db88c1a488ec1c7473a7426f080fe,8de1108fef8e2e2cb18758832ebce193b2f15963..e2ed275d4c0ccf278f25542f6159d0f3130678b5
@@@ -103,7 -103,7 +103,7 @@@ impl Type 
      }
  
      pub fn int(ccx: &CrateContext) -> Type {
-         match ccx.tcx().sess.target.target.target_pointer_width.index(&FullRange) {
 -        match &ccx.tcx().sess.target.target.target_word_size[] {
++        match &ccx.tcx().sess.target.target.target_pointer_width[] {
              "32" => Type::i32(ccx),
              "64" => Type::i64(ccx),
              tws => panic!("Unsupported target word size for int: {}", tws),
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 8e1a58602596b93253b2a7066afc4117b04b028f,77d10482f1e9987f24eb0367d77f3dbbb7e59164..1d8f62abc087592ecc4261e4bba314a38f13a944
@@@ -103,10 -104,20 +103,23 @@@ impl<'a> fold::Folder for PreludeInject
          attr::mark_used(&no_std_attr);
          krate.attrs.push(no_std_attr);
  
-         if !no_prelude(krate.attrs.index(&FullRange)) {
 +        // only add `use std::prelude::*;` if there wasn't a
 +        // `#![no_implicit_prelude]` at the crate level.
 +        // fold_mod() will insert glob path.
+         if !no_prelude(&krate.attrs[]) {
+             // only add `use std::prelude::*;` if there wasn't a
+             // `#![no_implicit_prelude]` at the crate level.
+             // fold_mod() will insert glob path.
+             let globs_attr = attr::mk_attr_inner(attr::mk_attr_id(),
+                                                  attr::mk_list_item(
+                 InternedString::new("feature"),
+                 vec!(
+                     attr::mk_word_item(InternedString::new("globs")),
+                 )));
+             // std_inject runs after feature checking so manually mark this attr
+             attr::mark_used(&globs_attr);
+             krate.attrs.push(globs_attr);
              krate.module = self.fold_mod(krate.module);
          }
          krate
Simple merge
Simple merge
Simple merge
Simple merge