Skip to content

Commit 535c8d1

Browse files
committed
---
yaml --- r: 1916 b: refs/heads/master c: 626bdaa h: refs/heads/master v: v3
1 parent 9fe2513 commit 535c8d1

File tree

4 files changed

+14
-9
lines changed

4 files changed

+14
-9
lines changed

[refs]

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: c67eb1a575dc09850c3b59ed15252db9cb451c11
2+
refs/heads/master: 626bdaaa1f44de7f398c818eaad29dedfb6e20ab

trunk/src/comp/front/creader.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ impure fn parse_mt(@pstate st, str_def sd) -> ty.mt {
8484
ret rec(ty=parse_ty(st, sd), mut=mut);
8585
}
8686

87+
impure fn parse_def(@pstate st, str_def sd) -> ast.def_id {
88+
auto def = "";
89+
while (peek(st) as char != '|') {
90+
def += _str.unsafe_from_byte(next(st));
91+
}
92+
st.pos = st.pos + 1u;
93+
ret sd(def);
94+
}
95+
8796
impure fn parse_sty(@pstate st, str_def sd) -> ty.sty {
8897
alt (next(st) as char) {
8998
case ('n') {ret ty.ty_nil;}
@@ -109,18 +118,15 @@ impure fn parse_sty(@pstate st, str_def sd) -> ty.sty {
109118
case ('s') {ret ty.ty_str;}
110119
case ('t') {
111120
check(next(st) as char == '[');
112-
auto def = "";
113-
while (peek(st) as char != '|') {
114-
def += _str.unsafe_from_byte(next(st));
115-
}
116-
st.pos = st.pos + 1u;
121+
auto def = parse_def(st, sd);
117122
let vec[@ty.t] params = vec();
118123
while (peek(st) as char != ']') {
119124
params += vec(parse_ty(st, sd));
120125
}
121126
st.pos = st.pos + 1u;
122-
ret ty.ty_tag(sd(def), params);
127+
ret ty.ty_tag(def, params);
123128
}
129+
case ('p') {ret ty.ty_param(parse_def(st, sd));}
124130
case ('@') {ret ty.ty_box(parse_mt(st, sd));}
125131
case ('V') {ret ty.ty_vec(parse_mt(st, sd));}
126132
case ('P') {ret ty.ty_port(parse_ty(st, sd));}

trunk/src/comp/middle/metadata.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ fn sty_str(ty.sty st, def_str ds) -> str {
123123
}
124124
case (ty.ty_var(?id)) {ret "X" + common.istr(id);}
125125
case (ty.ty_native) {ret "E";}
126-
case (ty.ty_param(?def)) {ret "p" + ds(def);}
126+
case (ty.ty_param(?def)) {ret "p" + ds(def) + "|";}
127127
case (ty.ty_type) {ret "Y";}
128128
}
129129
}

trunk/src/test/run-pass/lib-bitv.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// xfail-stage0
21
use std;
32
import std._vec;
43
import std.bitv;

0 commit comments

Comments
 (0)