Skip to content

Commit 226be36

Browse files
committed
---
yaml --- r: 1416 b: refs/heads/master c: eac75b7 h: refs/heads/master v: v3
1 parent 4a628b3 commit 226be36

File tree

10 files changed

+59
-2
lines changed

10 files changed

+59
-2
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: c4df39609c9c09c450dd8fe5905a8e6fbeb5f181
2+
refs/heads/master: eac75b76486ec54f677b2460f09635380437b125

trunk/src/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,13 @@ TEST_XFAILS_RUSTC := $(filter-out \
569569
multiline-comment-line-tracking.rs \
570570
output-type-mismatch.rs \
571571
rec-missing-fields.rs \
572+
reserved-dec.rs \
573+
reserved-f128.rs \
574+
reserved-f16.rs \
575+
reserved-f80.rs \
576+
reserved-m128.rs \
577+
reserved-m32.rs \
578+
reserved-m64.rs \
572579
tail-non-call.rs \
573580
tail-typeck.rs \
574581
type-shadow.rs \

trunk/src/comp/front/lexer.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ fn new_reader(stdio_reader rdr, str filename) -> reader
9090
}
9191

9292
auto keywords = new_str_hash[token.token]();
93-
auto reserved = new_str_hash[()]();
9493

9594
keywords.insert("mod", token.MOD);
9695
keywords.insert("use", token.USE);
@@ -191,6 +190,16 @@ fn new_reader(stdio_reader rdr, str filename) -> reader
191190
keywords.insert("f32", token.MACH(common.ty_f32));
192191
keywords.insert("f64", token.MACH(common.ty_f64));
193192

193+
auto reserved = new_str_hash[()]();
194+
195+
reserved.insert("f16", ()); // IEEE 754-2008 'binary16' interchange fmt
196+
reserved.insert("f80", ()); // IEEE 754-1985 'extended'
197+
reserved.insert("f128", ()); // IEEE 754-2008 'binary128'
198+
reserved.insert("m32", ()); // IEEE 754-2008 'decimal32'
199+
reserved.insert("m64", ()); // IEEE 754-2008 'decimal64'
200+
reserved.insert("m128", ()); // IEEE 754-2008 'decimal128'
201+
reserved.insert("dec", ()); // One of m32, m64, m128
202+
194203
ret reader(rdr, filename, rdr.getc() as char, rdr.getc() as char,
195204
1u, 0u, 1u, 0u, keywords, reserved);
196205
}
@@ -425,6 +434,12 @@ impure fn next_token(reader rdr) -> token.token {
425434
ret kwds.get(accum_str);
426435
}
427436

437+
auto rsvd = rdr.get_reserved();
438+
if (rsvd.contains_key(accum_str)) {
439+
log "reserved keyword";
440+
fail;
441+
}
442+
428443
ret token.IDENT(accum_str);
429444
}
430445

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// error-pattern:reserved keyword
2+
3+
fn main() {
4+
let int dec = 0;
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// error-pattern:reserved keyword
2+
3+
fn main() {
4+
let int f128 = 0;
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// error-pattern:reserved keyword
2+
3+
fn main() {
4+
let int f16 = 0;
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// error-pattern:reserved keyword
2+
3+
fn main() {
4+
let int f80 = 0;
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// error-pattern:reserved keyword
2+
3+
fn main() {
4+
let int m128 = 0;
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// error-pattern:reserved keyword
2+
3+
fn main() {
4+
let int m32 = 0;
5+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// error-pattern:reserved keyword
2+
3+
fn main() {
4+
let int m64 = 0;
5+
}

0 commit comments

Comments
 (0)