Skip to content

Commit 44932aa

Browse files
committed
---
yaml --- r: 210938 b: refs/heads/try c: 82447cf h: refs/heads/master v: v3
1 parent 2ed6577 commit 44932aa

File tree

21 files changed

+33
-71
lines changed

21 files changed

+33
-71
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 3e561f05c00cd180ec02db4ccab2840a4aba93d2
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: ba0e1cd8147d452c356aacb29fb87568ca26f111
5-
refs/heads/try: 6f2a069b9ca22c548564d4fad4d1f3b72eb260db
5+
refs/heads/try: 82447cf5006b0ebdbcf47b796cc521ee0d88f3fa
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
88
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/try/src/doc/trpl/closures.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ The second is that the syntax is similar, but a bit different. I’ve added spac
5454
here to make them look a little closer:
5555

5656
```rust
57-
fn plus_one_v1 (x: i32 ) -> i32 { x + 1 }
58-
let plus_one_v2 = |x: i32 | -> i32 { x + 1 };
59-
let plus_one_v3 = |x: i32 | x + 1 ;
57+
fn plus_one_v1 (x: i32) -> i32 { x + 1 }
58+
let plus_one_v2 = |x: i32| -> i32 { x + 1 };
59+
let plus_one_v3 = |x: i32| x + 1 ;
6060
```
6161

6262
Small differences, but they’re similar in ways.
@@ -136,7 +136,7 @@ This gives us:
136136
note: `nums` moved into closure environment here because it has type
137137
`[closure(()) -> collections::vec::Vec<i32>]`, which is non-copyable
138138
let takes_nums = || nums;
139-
^~~~~~~
139+
^~~~~~~
140140
```
141141

142142
`Vec<T>` has ownership over its contents, and therefore, when we refer to it
@@ -352,8 +352,8 @@ error: the trait `core::marker::Sized` is not implemented for the type
352352
factory() -> (Fn(i32) -> Vec<i32>) {
353353
^~~~~~~~~~~~~~~~~~~~~
354354
note: `core::ops::Fn(i32) -> collections::vec::Vec<i32>` does not have a constant size known at compile-time
355-
fa ctory() -> (Fn(i32) -> Vec<i32>) {
356-
^~~~~~~~~~~~~~~~~~~~~
355+
factory() -> (Fn(i32) -> Vec<i32>) {
356+
^~~~~~~~~~~~~~~~~~~~~
357357
358358
```
359359

branches/try/src/doc/trpl/references-and-borrowing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ We can’t modify `v` because it’s borrowed by the loop.
297297
References must live as long as the resource they refer to. Rust will check the
298298
scopes of your references to ensure that this is true.
299299

300-
If Rust didn’t check this property, we could accidentally use a reference
300+
If Rust didn’t check that this property, we could accidentally use a reference
301301
which was invalid. For example:
302302

303303
```rust,ignore

branches/try/src/librustc/middle/const_eval.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
1+
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
22
// file at the top-level directory of this distribution and at
33
// http://rust-lang.org/COPYRIGHT.
44
//
@@ -34,7 +34,7 @@ use std::borrow::{Cow, IntoCow};
3434
use std::num::wrapping::OverflowingOps;
3535
use std::cmp::Ordering;
3636
use std::collections::hash_map::Entry::Vacant;
37-
use std::{i8, i16, i32, i64, u8, u16, u32, u64};
37+
use std::{i8, i16, i32, i64};
3838
use std::rc::Rc;
3939

4040
fn lookup_const<'a>(tcx: &'a ty::ctxt, e: &Expr) -> Option<&'a Expr> {
@@ -461,16 +461,6 @@ pub fn const_uint_checked_neg<'a>(
461461
Ok(const_uint((!a).wrapping_add(1)))
462462
}
463463

464-
fn const_uint_not(a: u64, opt_ety: Option<UintTy>) -> const_val {
465-
let mask = match opt_ety {
466-
Some(UintTy::U8) => u8::MAX as u64,
467-
Some(UintTy::U16) => u16::MAX as u64,
468-
Some(UintTy::U32) => u32::MAX as u64,
469-
None | Some(UintTy::U64) => u64::MAX,
470-
};
471-
const_uint(!a & mask)
472-
}
473-
474464
macro_rules! overflow_checking_body {
475465
($a:ident, $b:ident, $ety:ident, $overflowing_op:ident,
476466
lhs: $to_8_lhs:ident $to_16_lhs:ident $to_32_lhs:ident,
@@ -687,7 +677,7 @@ pub fn eval_const_expr_partial<'tcx>(tcx: &ty::ctxt<'tcx>,
687677
ast::ExprUnary(ast::UnNot, ref inner) => {
688678
match try!(eval_const_expr_partial(tcx, &**inner, ety)) {
689679
const_int(i) => const_int(!i),
690-
const_uint(i) => const_uint_not(i, expr_uint_type),
680+
const_uint(i) => const_uint(!i),
691681
const_bool(b) => const_bool(!b),
692682
const_str(_) => signal!(e, NotOnString),
693683
const_float(_) => signal!(e, NotOnFloat),

branches/try/src/librustc_typeck/check/mod.rs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3153,10 +3153,26 @@ fn check_expr_with_unifier<'a, 'tcx, F>(fcx: &FnCtxt<'a, 'tcx>,
31533153
Some(&**oprnd), oprnd_t, lvalue_pref) {
31543154
Some(mt) => mt.ty,
31553155
None => {
3156-
fcx.type_error_message(expr.span, |actual| {
3157-
format!("type `{}` cannot be \
3158-
dereferenced", actual)
3159-
}, oprnd_t, None);
3156+
let is_newtype = match oprnd_t.sty {
3157+
ty::ty_struct(did, substs) => {
3158+
let fields = ty::struct_fields(fcx.tcx(), did, substs);
3159+
fields.len() == 1
3160+
&& fields[0].name ==
3161+
token::special_idents::unnamed_field.name
3162+
}
3163+
_ => false
3164+
};
3165+
if is_newtype {
3166+
// This is an obsolete struct deref
3167+
span_err!(tcx.sess, expr.span, E0068,
3168+
"single-field tuple-structs can \
3169+
no longer be dereferenced");
3170+
} else {
3171+
fcx.type_error_message(expr.span, |actual| {
3172+
format!("type `{}` cannot be \
3173+
dereferenced", actual)
3174+
}, oprnd_t, None);
3175+
}
31603176
tcx.types.err
31613177
}
31623178
}

branches/try/src/libsyntax/ext/deriving/clone.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ pub fn expand_deriving_clone(cx: &mut ExtCtxt,
3939
args: Vec::new(),
4040
ret_ty: Self_,
4141
attributes: attrs,
42-
is_unsafe: false,
4342
combine_substructure: combine_substructure(Box::new(|c, s, sub| {
4443
cs_clone("Clone", c, s, sub)
4544
})),

branches/try/src/libsyntax/ext/deriving/cmp/eq.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ pub fn expand_deriving_eq(cx: &mut ExtCtxt,
5959
args: vec!(),
6060
ret_ty: nil_ty(),
6161
attributes: attrs,
62-
is_unsafe: false,
6362
combine_substructure: combine_substructure(Box::new(|a, b, c| {
6463
cs_total_eq_assert(a, b, c)
6564
}))

branches/try/src/libsyntax/ext/deriving/cmp/ord.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ pub fn expand_deriving_ord(cx: &mut ExtCtxt,
4040
args: vec!(borrowed_self()),
4141
ret_ty: Literal(path_std!(cx, core::cmp::Ordering)),
4242
attributes: attrs,
43-
is_unsafe: false,
4443
combine_substructure: combine_substructure(Box::new(|a, b, c| {
4544
cs_cmp(a, b, c)
4645
})),

branches/try/src/libsyntax/ext/deriving/cmp/partial_eq.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ pub fn expand_deriving_partial_eq(cx: &mut ExtCtxt,
7171
args: vec!(borrowed_self()),
7272
ret_ty: Literal(path_local!(bool)),
7373
attributes: attrs,
74-
is_unsafe: false,
7574
combine_substructure: combine_substructure(Box::new(|a, b, c| {
7675
$f(a, b, c)
7776
}))

branches/try/src/libsyntax/ext/deriving/cmp/partial_ord.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ pub fn expand_deriving_partial_ord(cx: &mut ExtCtxt,
3737
args: vec!(borrowed_self()),
3838
ret_ty: Literal(path_local!(bool)),
3939
attributes: attrs,
40-
is_unsafe: false,
4140
combine_substructure: combine_substructure(Box::new(|cx, span, substr| {
4241
cs_op($op, $equal, cx, span, substr)
4342
}))
@@ -61,7 +60,6 @@ pub fn expand_deriving_partial_ord(cx: &mut ExtCtxt,
6160
args: vec![borrowed_self()],
6261
ret_ty: ret_ty,
6362
attributes: attrs,
64-
is_unsafe: false,
6563
combine_substructure: combine_substructure(Box::new(|cx, span, substr| {
6664
cs_partial_cmp(cx, span, substr)
6765
}))

branches/try/src/libsyntax/ext/deriving/decodable.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ fn expand_deriving_decodable_imp(cx: &mut ExtCtxt,
7979
true
8080
)),
8181
attributes: Vec::new(),
82-
is_unsafe: false,
8382
combine_substructure: combine_substructure(Box::new(|a, b, c| {
8483
decodable_substructure(a, b, c, krate)
8584
})),

branches/try/src/libsyntax/ext/deriving/default.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ pub fn expand_deriving_default(cx: &mut ExtCtxt,
3939
args: Vec::new(),
4040
ret_ty: Self_,
4141
attributes: attrs,
42-
is_unsafe: false,
4342
combine_substructure: combine_substructure(Box::new(|a, b, c| {
4443
default_substructure(a, b, c)
4544
}))

branches/try/src/libsyntax/ext/deriving/encodable.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ fn expand_deriving_encodable_imp(cx: &mut ExtCtxt,
155155
true
156156
)),
157157
attributes: Vec::new(),
158-
is_unsafe: false,
159158
combine_substructure: combine_substructure(Box::new(|a, b, c| {
160159
encodable_substructure(a, b, c)
161160
})),

branches/try/src/libsyntax/ext/deriving/generic/mod.rs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,6 @@ pub struct MethodDef<'a> {
253253

254254
pub attributes: Vec<ast::Attribute>,
255255

256-
// Is it an `unsafe fn`?
257-
pub is_unsafe: bool,
258-
259256
pub combine_substructure: RefCell<CombineSubstructureFunc<'a>>,
260257
}
261258

@@ -862,12 +859,6 @@ impl<'a> MethodDef<'a> {
862859
let fn_decl = cx.fn_decl(args, ret_type);
863860
let body_block = cx.block_expr(body);
864861

865-
let unsafety = if self.is_unsafe {
866-
ast::Unsafety::Unsafe
867-
} else {
868-
ast::Unsafety::Normal
869-
};
870-
871862
// Create the method.
872863
P(ast::ImplItem {
873864
id: ast::DUMMY_NODE_ID,
@@ -879,7 +870,7 @@ impl<'a> MethodDef<'a> {
879870
generics: fn_generics,
880871
abi: abi,
881872
explicit_self: explicit_self,
882-
unsafety: unsafety,
873+
unsafety: ast::Unsafety::Normal,
883874
decl: fn_decl
884875
}, body_block)
885876
})

branches/try/src/libsyntax/ext/deriving/hash.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ pub fn expand_deriving_hash(cx: &mut ExtCtxt,
4444
args: vec!(Ptr(Box::new(Literal(arg)), Borrowed(None, MutMutable))),
4545
ret_ty: nil_ty(),
4646
attributes: vec![],
47-
is_unsafe: false,
4847
combine_substructure: combine_substructure(Box::new(|a, b, c| {
4948
hash_substructure(a, b, c)
5049
}))

branches/try/src/libsyntax/ext/deriving/primitive.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ pub fn expand_deriving_from_primitive(cx: &mut ExtCtxt,
4444
true)),
4545
// #[inline] liable to cause code-bloat
4646
attributes: attrs.clone(),
47-
is_unsafe: false,
4847
combine_substructure: combine_substructure(Box::new(|c, s, sub| {
4948
cs_from("i64", c, s, sub)
5049
})),
@@ -60,7 +59,6 @@ pub fn expand_deriving_from_primitive(cx: &mut ExtCtxt,
6059
true)),
6160
// #[inline] liable to cause code-bloat
6261
attributes: attrs,
63-
is_unsafe: false,
6462
combine_substructure: combine_substructure(Box::new(|c, s, sub| {
6563
cs_from("u64", c, s, sub)
6664
})),

branches/try/src/libsyntax/ext/deriving/show.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ pub fn expand_deriving_show(cx: &mut ExtCtxt,
4242
args: vec!(fmtr),
4343
ret_ty: Literal(path_std!(cx, core::fmt::Result)),
4444
attributes: Vec::new(),
45-
is_unsafe: false,
4645
combine_substructure: combine_substructure(Box::new(|a, b, c| {
4746
show_substructure(a, b, c)
4847
}))

branches/try/src/libsyntax/feature_gate.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ pub const KNOWN_ATTRIBUTES: &'static [(&'static str, AttributeType)] = &[
258258
("no_builtins", Whitelisted),
259259
("no_mangle", Whitelisted),
260260
("no_stack_check", Whitelisted),
261+
("packed", Whitelisted),
261262
("static_assert", Gated("static_assert",
262263
"`#[static_assert]` is an experimental feature, and has a poor API")),
263264
("no_debug", Whitelisted),

branches/try/src/test/auxiliary/custom_derive_plugin.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ fn expand(cx: &mut ExtCtxt,
5454
args: vec![],
5555
ret_ty: Literal(Path::new_local("isize")),
5656
attributes: vec![],
57-
is_unsafe: false,
5857
combine_substructure: combine_substructure(box |cx, span, substr| {
5958
let zero = cx.expr_isize(span, 0);
6059
cs_fold(false,

branches/try/src/test/auxiliary/custom_derive_plugin_attr.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ fn expand(cx: &mut ExtCtxt,
5656
args: vec![],
5757
ret_ty: Literal(Path::new_local("isize")),
5858
attributes: vec![],
59-
is_unsafe: false,
6059
combine_substructure: combine_substructure(Box::new(totalsum_substructure)),
6160
},
6261
],

branches/try/src/test/run-pass/issue-23968-const-not-overflow.rs

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)