Skip to content

Commit 9a31b3f

Browse files
committed
---
yaml --- r: 69548 b: refs/heads/auto c: 1d256ba h: refs/heads/master v: v3
1 parent fc3472b commit 9a31b3f

File tree

16 files changed

+132
-73
lines changed

16 files changed

+132
-73
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: c47be6929bafa6c585949907627cd1ea3280fd50
17+
refs/heads/auto: 1d256ba6e83c9f779e8c9a5346eb5df95ef589b2
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1919
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c

branches/auto/src/libsyntax/ext/expand.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,7 @@ pub fn std_macros() -> @str {
683683
($cond:expr) => {
684684
if !$cond {
685685
::std::sys::FailWithCause::fail_with(
686-
~\"assertion failed: \" + stringify!($cond), file!(), line!())
686+
\"assertion failed: \" + stringify!($cond), file!(), line!())
687687
}
688688
};
689689
($cond:expr, $msg:expr) => {

branches/auto/src/libsyntax/parse/obsolete.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ use std::to_bytes;
3030
/// The specific types of unsupported syntax
3131
#[deriving(Eq)]
3232
pub enum ObsoleteSyntax {
33+
ObsoleteLowerCaseKindBounds,
3334
ObsoleteLet,
3435
ObsoleteFieldTerminator,
3536
ObsoleteStructCtor,
@@ -95,6 +96,12 @@ impl ParserObsoleteMethods for Parser {
9596
/// Reports an obsolete syntax non-fatal error.
9697
pub fn obsolete(&self, sp: span, kind: ObsoleteSyntax) {
9798
let (kind_str, desc) = match kind {
99+
ObsoleteLowerCaseKindBounds => (
100+
"lower-case kind bounds",
101+
"the `send`, `copy`, `const`, and `owned` \
102+
kinds are represented as traits now, and \
103+
should be camel cased"
104+
),
98105
ObsoleteLet => (
99106
"`let` in field declaration",
100107
"declare fields as `field: Type`"

branches/auto/src/libsyntax/parse/parser.rs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ use parse::lexer::TokenAndSpan;
7171
use parse::obsolete::{ObsoleteClassTraits};
7272
use parse::obsolete::{ObsoleteLet, ObsoleteFieldTerminator};
7373
use parse::obsolete::{ObsoleteMoveInit, ObsoleteBinaryMove, ObsoleteSwap};
74-
use parse::obsolete::ObsoleteSyntax;
74+
use parse::obsolete::{ObsoleteSyntax, ObsoleteLowerCaseKindBounds};
7575
use parse::obsolete::{ObsoleteUnsafeBlock, ObsoleteImplSyntax};
7676
use parse::obsolete::{ObsoleteMutOwnedPointer};
7777
use parse::obsolete::{ObsoleteMutVector, ObsoleteImplVisibility};
@@ -3309,8 +3309,30 @@ impl Parser {
33093309
self.bump();
33103310
}
33113311
token::MOD_SEP | token::IDENT(*) => {
3312-
let tref = self.parse_trait_ref();
3313-
result.push(TraitTyParamBound(tref));
3312+
let obsolete_bound = match *self.token {
3313+
token::MOD_SEP => false,
3314+
token::IDENT(sid, _) => {
3315+
match self.id_to_str(sid).as_slice() {
3316+
"send" |
3317+
"copy" |
3318+
"const" |
3319+
"owned" => {
3320+
self.obsolete(
3321+
*self.span,
3322+
ObsoleteLowerCaseKindBounds);
3323+
self.bump();
3324+
true
3325+
}
3326+
_ => false
3327+
}
3328+
}
3329+
_ => fail!()
3330+
};
3331+
3332+
if !obsolete_bound {
3333+
let tref = self.parse_trait_ref();
3334+
result.push(TraitTyParamBound(tref));
3335+
}
33143336
}
33153337
_ => break,
33163338
}

branches/auto/src/libsyntax/parse/token.rs

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -440,41 +440,42 @@ fn mk_fresh_ident_interner() -> @ident_interner {
440440
"as", // 32
441441
"break", // 33
442442
"const", // 34
443-
"do", // 35
444-
"else", // 36
445-
"enum", // 37
446-
"extern", // 38
447-
"false", // 39
448-
"fn", // 40
449-
"for", // 41
450-
"if", // 42
451-
"impl", // 43
452-
"let", // 44
453-
"__log", // 45
454-
"loop", // 46
455-
"match", // 47
456-
"mod", // 48
457-
"mut", // 49
458-
"once", // 50
459-
"priv", // 51
460-
"pub", // 52
461-
"pure", // 53
462-
"ref", // 54
463-
"return", // 55
443+
"copy", // 35
444+
"do", // 36
445+
"else", // 37
446+
"enum", // 38
447+
"extern", // 39
448+
"false", // 40
449+
"fn", // 41
450+
"for", // 42
451+
"if", // 43
452+
"impl", // 44
453+
"let", // 45
454+
"__log", // 46
455+
"loop", // 47
456+
"match", // 48
457+
"mod", // 49
458+
"mut", // 50
459+
"once", // 51
460+
"priv", // 52
461+
"pub", // 53
462+
"pure", // 54
463+
"ref", // 55
464+
"return", // 56
464465
"static", // 27 -- also a special ident
465466
"self", // 8 -- also a special ident
466-
"struct", // 56
467-
"super", // 57
468-
"true", // 58
469-
"trait", // 59
470-
"type", // 60
471-
"unsafe", // 61
472-
"use", // 62
473-
"while", // 63
474-
475-
"be", // 64
476-
"in", // 65
477-
"foreach", // 66
467+
"struct", // 57
468+
"super", // 58
469+
"true", // 59
470+
"trait", // 60
471+
"type", // 61
472+
"unsafe", // 62
473+
"use", // 63
474+
"while", // 64
475+
476+
"be", // 65
477+
"in", // 66
478+
"foreach", // 67
478479
];
479480

480481
@ident_interner {
@@ -608,40 +609,40 @@ pub mod keywords {
608609
As => ident { name: 32, ctxt: 0 },
609610
Break => ident { name: 33, ctxt: 0 },
610611
Const => ident { name: 34, ctxt: 0 },
611-
Do => ident { name: 35, ctxt: 0 },
612-
Else => ident { name: 36, ctxt: 0 },
613-
Enum => ident { name: 37, ctxt: 0 },
614-
Extern => ident { name: 38, ctxt: 0 },
615-
False => ident { name: 39, ctxt: 0 },
616-
Fn => ident { name: 40, ctxt: 0 },
617-
For => ident { name: 41, ctxt: 0 },
618-
ForEach => ident { name: 66, ctxt: 0 },
619-
If => ident { name: 42, ctxt: 0 },
620-
Impl => ident { name: 43, ctxt: 0 },
621-
In => ident { name: 65, ctxt: 0 },
622-
Let => ident { name: 44, ctxt: 0 },
623-
__Log => ident { name: 45, ctxt: 0 },
624-
Loop => ident { name: 46, ctxt: 0 },
625-
Match => ident { name: 47, ctxt: 0 },
626-
Mod => ident { name: 48, ctxt: 0 },
627-
Mut => ident { name: 49, ctxt: 0 },
628-
Once => ident { name: 50, ctxt: 0 },
629-
Priv => ident { name: 51, ctxt: 0 },
630-
Pub => ident { name: 52, ctxt: 0 },
631-
Pure => ident { name: 53, ctxt: 0 },
632-
Ref => ident { name: 54, ctxt: 0 },
633-
Return => ident { name: 55, ctxt: 0 },
612+
Do => ident { name: 36, ctxt: 0 },
613+
Else => ident { name: 37, ctxt: 0 },
614+
Enum => ident { name: 38, ctxt: 0 },
615+
Extern => ident { name: 39, ctxt: 0 },
616+
False => ident { name: 40, ctxt: 0 },
617+
Fn => ident { name: 41, ctxt: 0 },
618+
For => ident { name: 42, ctxt: 0 },
619+
ForEach => ident { name: 67, ctxt: 0 },
620+
If => ident { name: 43, ctxt: 0 },
621+
Impl => ident { name: 44, ctxt: 0 },
622+
In => ident { name: 66, ctxt: 0 },
623+
Let => ident { name: 45, ctxt: 0 },
624+
__Log => ident { name: 46, ctxt: 0 },
625+
Loop => ident { name: 47, ctxt: 0 },
626+
Match => ident { name: 48, ctxt: 0 },
627+
Mod => ident { name: 49, ctxt: 0 },
628+
Mut => ident { name: 50, ctxt: 0 },
629+
Once => ident { name: 51, ctxt: 0 },
630+
Priv => ident { name: 52, ctxt: 0 },
631+
Pub => ident { name: 53, ctxt: 0 },
632+
Pure => ident { name: 54, ctxt: 0 },
633+
Ref => ident { name: 55, ctxt: 0 },
634+
Return => ident { name: 56, ctxt: 0 },
634635
Static => ident { name: 27, ctxt: 0 },
635636
Self => ident { name: 8, ctxt: 0 },
636-
Struct => ident { name: 56, ctxt: 0 },
637-
Super => ident { name: 57, ctxt: 0 },
638-
True => ident { name: 58, ctxt: 0 },
639-
Trait => ident { name: 59, ctxt: 0 },
640-
Type => ident { name: 60, ctxt: 0 },
641-
Unsafe => ident { name: 61, ctxt: 0 },
642-
Use => ident { name: 62, ctxt: 0 },
643-
While => ident { name: 63, ctxt: 0 },
644-
Be => ident { name: 64, ctxt: 0 },
637+
Struct => ident { name: 57, ctxt: 0 },
638+
Super => ident { name: 58, ctxt: 0 },
639+
True => ident { name: 59, ctxt: 0 },
640+
Trait => ident { name: 60, ctxt: 0 },
641+
Type => ident { name: 61, ctxt: 0 },
642+
Unsafe => ident { name: 62, ctxt: 0 },
643+
Use => ident { name: 63, ctxt: 0 },
644+
While => ident { name: 64, ctxt: 0 },
645+
Be => ident { name: 65, ctxt: 0 },
645646
}
646647
}
647648
}
@@ -657,7 +658,7 @@ pub fn is_keyword(kw: keywords::Keyword, tok: &Token) -> bool {
657658
pub fn is_any_keyword(tok: &Token) -> bool {
658659
match *tok {
659660
token::IDENT(sid, false) => match sid.name {
660-
8 | 27 | 32 .. 64 => true,
661+
8 | 27 | 32 .. 65 => true,
661662
_ => false,
662663
},
663664
_ => false
@@ -667,7 +668,7 @@ pub fn is_any_keyword(tok: &Token) -> bool {
667668
pub fn is_strict_keyword(tok: &Token) -> bool {
668669
match *tok {
669670
token::IDENT(sid, false) => match sid.name {
670-
8 | 27 | 32 .. 63 => true,
671+
8 | 27 | 32 .. 64 => true,
671672
_ => false,
672673
},
673674
_ => false,
@@ -677,13 +678,14 @@ pub fn is_strict_keyword(tok: &Token) -> bool {
677678
pub fn is_reserved_keyword(tok: &Token) -> bool {
678679
match *tok {
679680
token::IDENT(sid, false) => match sid.name {
680-
64 => true,
681+
65 => true,
681682
_ => false,
682683
},
683684
_ => false,
684685
}
685686
}
686687

688+
687689
#[cfg(test)]
688690
mod test {
689691
use super::*;

branches/auto/src/test/compile-fail/obsolete-syntax.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
fn f1<T:copy>() -> T { }
12+
//~^ ERROR obsolete syntax: lower-case kind bounds
13+
14+
fn f1<T:send>() -> T { }
15+
//~^ ERROR obsolete syntax: lower-case kind bounds
16+
17+
fn f1<T:const>() -> T { }
18+
//~^ ERROR obsolete syntax: lower-case kind bounds
19+
20+
fn f1<T:owned>() -> T { }
21+
//~^ ERROR obsolete syntax: lower-case kind bounds
22+
1123
struct s {
1224
let foo: (),
1325
//~^ ERROR obsolete syntax: `let` in field declaration

branches/auto/src/test/run-fail/morestack1.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
1112
// error-pattern:fail
1213
fn getbig(i: int) {
1314
if i != 0 {

branches/auto/src/test/run-fail/morestack2.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
1112
// error-pattern:explicit failure
1213

1314
// This time we're testing that the stack limits are restored

branches/auto/src/test/run-fail/morestack3.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
1112
// error-pattern:explicit failure
1213

1314
// Just testing unwinding

branches/auto/src/test/run-fail/morestack4.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
1112
// error-pattern:explicit failure
1213

1314
// Just testing unwinding

branches/auto/src/test/run-pass/morestack1.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
12+
1113
fn getbig(i: int) {
1214
if i != 0 {
1315
getbig(i - 1);

branches/auto/src/test/run-pass/morestack2.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
12+
1113
fn getbig(i: int) -> int {
1214
let m = if i >= 0 {
1315
let j = getbig(i - 1);

branches/auto/src/test/run-pass/morestack3.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
12+
1113
// Here we're testing that all of the argument registers, argument
1214
// stack slots, and return value are preserved across split stacks.
1315
fn getbig(a0: int,

branches/auto/src/test/run-pass/morestack4.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
12+
1113
// This is testing for stack frames greater than 256 bytes,
1214
// for which function prologues are generated differently
1315

branches/auto/src/test/run-pass/morestack5.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
12+
1113
// This test will call __morestack with various minimum stack sizes
1214

1315
extern mod extra;

branches/auto/src/test/run-pass/morestack6.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
// xfail-test newsched transition
12+
1113
// This test attempts to force the dynamic linker to resolve
1214
// external symbols as close to the red zone as possible.
1315

0 commit comments

Comments
 (0)