Skip to content

Commit 5dfb7a6

Browse files
committed
auto merge of #16809 : nick29581/rust/dst-bug-3, r=alexcrichton
This corrects a rebasing error. Also adds a test so it won't happen again. r?
2 parents 08176a3 + 5392373 commit 5dfb7a6

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

src/libsyntax/parse/parser.rs

+6-13
Original file line numberDiff line numberDiff line change
@@ -1416,14 +1416,10 @@ impl<'a> Parser<'a> {
14161416
} else if self.token == token::TILDE {
14171417
// OWNED POINTER
14181418
self.bump();
1419-
let span = self.last_span;
1419+
let last_span = self.last_span;
14201420
match self.token {
1421-
token::IDENT(ref ident, _)
1422-
if "str" == token::get_ident(*ident).get() => {
1423-
// This is OK (for now).
1424-
}
1425-
token::LBRACKET => {} // Also OK.
1426-
_ => self.obsolete(span, ObsoleteOwnedType)
1421+
token::LBRACKET => self.obsolete(last_span, ObsoleteOwnedVector),
1422+
_ => self.obsolete(last_span, ObsoleteOwnedType)
14271423
}
14281424
TyUniq(self.parse_ty(false))
14291425
} else if self.token == token::BINOP(token::STAR) {
@@ -2561,13 +2557,10 @@ impl<'a> Parser<'a> {
25612557
}
25622558
token::TILDE => {
25632559
self.bump();
2564-
let span = self.last_span;
2560+
let last_span = self.last_span;
25652561
match self.token {
2566-
token::LIT_STR(_) => {
2567-
// This is OK (for now).
2568-
}
2569-
token::LBRACKET => {} // Also OK.
2570-
_ => self.obsolete(span, ObsoleteOwnedExpr)
2562+
token::LBRACKET => self.obsolete(last_span, ObsoleteOwnedVector),
2563+
_ => self.obsolete(last_span, ObsoleteOwnedExpr)
25712564
}
25722565

25732566
let e = self.parse_prefix_expr();
+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
// Test that ~ pointers give an obsolescence message.
12+
13+
fn foo(x: ~int) {} //~ ERROR obsolete syntax: `~` notation for owned pointers
14+
fn bar(x: ~str) {} //~ ERROR obsolete syntax: `~` notation for owned pointers
15+
fn baz(x: ~[int]) {} //~ ERROR obsolete syntax: `~[T]` is no longer a type
16+
17+
fn main() {
18+
let x = ~4i; //~ ERROR obsolete syntax: `~` notation for owned pointer allocation
19+
let y = ~"hello"; //~ ERROR obsolete syntax: `~` notation for owned pointer allocation
20+
let z = ~[1i, 2, 3]; //~ ERROR obsolete syntax: `~[T]` is no longer a type
21+
}

0 commit comments

Comments
 (0)