Skip to content

Commit 6f01220

Browse files
committed
---
yaml --- r: 5003 b: refs/heads/master c: 7d70685 h: refs/heads/master i: 5001: 9caacf3 4999: f0b7498 v: v3
1 parent 7497dfd commit 6f01220

File tree

11 files changed

+131
-124
lines changed

11 files changed

+131
-124
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: 9e01e05f3b2ba2f726271889c2bbb04c6b44aef1
2+
refs/heads/master: 7d70685eefc98668804c05428bb94f43933cca61

trunk/src/comp/middle/gc.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ type ctxt = @{mutable next_tydesc_num: uint};
2222

2323
fn mk_ctxt() -> ctxt { ret @{mutable next_tydesc_num: 0u}; }
2424

25-
fn add_global(ccx: &@crate_ctxt, llval: ValueRef, name: str) -> ValueRef {
26-
let llglobal = istr::as_buf(istr::from_estr(name), { |buf|
25+
fn add_global(ccx: &@crate_ctxt, llval: ValueRef, name: &istr) -> ValueRef {
26+
let llglobal = istr::as_buf(name, { |buf|
2727
lll::LLVMAddGlobal(ccx.llmod, val_ty(llval), buf)
2828
});
2929
lll::LLVMSetInitializer(llglobal, llval);
@@ -63,10 +63,10 @@ fn add_gc_root(cx: &@block_ctxt, llval: ValueRef, ty: ty::t) -> @block_ctxt {
6363

6464
let lldestindex =
6565
add_global(bcx_ccx(bcx), C_struct([C_int(0), C_uint(number)]),
66-
"rust_gc_tydesc_dest_index");
66+
~"rust_gc_tydesc_dest_index");
6767
let llsrcindex =
6868
add_global(bcx_ccx(bcx), C_struct([C_int(1), C_uint(number)]),
69-
"rust_gc_tydesc_src_index");
69+
~"rust_gc_tydesc_src_index");
7070

7171
lldestindex = lll::LLVMConstPointerCast(lldestindex, T_ptr(T_i8()));
7272
llsrcindex = lll::LLVMConstPointerCast(llsrcindex, T_ptr(T_i8()));
@@ -86,7 +86,7 @@ fn add_gc_root(cx: &@block_ctxt, llval: ValueRef, ty: ty::t) -> @block_ctxt {
8686

8787
let llstaticgcmeta =
8888
add_global(bcx_ccx(bcx), C_struct([C_int(2), lltydesc]),
89-
"rust_gc_tydesc_static_gc_meta");
89+
~"rust_gc_tydesc_static_gc_meta");
9090
let llstaticgcmetaptr =
9191
lll::LLVMConstPointerCast(llstaticgcmeta, T_ptr(T_i8()));
9292

trunk/src/comp/middle/resolve.rs

Lines changed: 54 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ tag import_state {
7575
option::t<def>); /* module */
7676
}
7777

78-
type ext_hash = hashmap<{did: def_id, ident: str, ns: namespace}, def>;
78+
type ext_hash = hashmap<{did: def_id, ident: istr, ns: namespace}, def>;
7979

8080
fn new_ext_hash() -> ext_hash {
81-
type key = {did: def_id, ident: str, ns: namespace};
81+
type key = {did: def_id, ident: istr, ns: namespace};
8282
fn hash(v: &key) -> uint {
83-
ret str::hash(v.ident) + util::common::hash_def(v.did) +
83+
ret istr::hash(v.ident) + util::common::hash_def(v.did) +
8484
alt v.ns {
8585
ns_value. { 1u }
8686
ns_type. { 2u }
@@ -89,7 +89,7 @@ fn new_ext_hash() -> ext_hash {
8989
}
9090
fn eq(v1: &key, v2: &key) -> bool {
9191
ret util::common::def_eq(v1.did, v2.did) &&
92-
str::eq(v1.ident, v2.ident) && v1.ns == v2.ns;
92+
istr::eq(v1.ident, v2.ident) && v1.ns == v2.ns;
9393
}
9494
ret std::map::mk_hashmap::<key, def>(hash, eq);
9595
}
@@ -128,7 +128,7 @@ type env =
128128
mod_map: hashmap<ast::node_id, @indexed_mod>,
129129
ext_map: hashmap<def_id, [ident]>,
130130
ext_cache: ext_hash,
131-
mutable reported: [{ident: str, sc: scope}],
131+
mutable reported: [{ident: istr, sc: scope}],
132132
sess: session};
133133

134134

@@ -477,7 +477,8 @@ fn resolve_import(e: &env, defid: ast::def_id, name: &ast::ident,
477477
alt lookup_in_scope(e, sc, sp, ids[0], ns_module) {
478478
some(dcur) { dcur }
479479
none. {
480-
unresolved_err(e, sc, sp, ids[0], ns_name(ns_module));
480+
unresolved_err(e, sc, sp, ids[0],
481+
ns_name(ns_module));
481482
remove_if_unresolved(e.imports, defid.node);
482483
ret ()
483484
}
@@ -499,7 +500,8 @@ fn resolve_import(e: &env, defid: ast::def_id, name: &ast::ident,
499500
{
500501
some(dcur) { dcur }
501502
none. {
502-
unresolved_err(e, sc, sp, ids[i], ns_name(ns_module));
503+
unresolved_err(e, sc, sp, ids[i],
504+
ns_name(ns_module));
503505
remove_if_unresolved(e.imports, defid.node);
504506
ret () // FIXME (issue #521)
505507
}
@@ -512,7 +514,7 @@ fn resolve_import(e: &env, defid: ast::def_id, name: &ast::ident,
512514
val: &option::t<def>, typ: &option::t<def>,
513515
md: &option::t<def>) {
514516
if is_none(val) && is_none(typ) && is_none(md) {
515-
unresolved_err(e, sc, sp, name, "import");
517+
unresolved_err(e, sc, sp, name, ~"import");
516518
} else { e.imports.insert(defid.node, resolved(val, typ, md)); }
517519
}
518520
fn remove_if_unresolved(imports: hashmap<ast::node_id, import_state>,
@@ -532,15 +534,16 @@ fn resolve_import(e: &env, defid: ast::def_id, name: &ast::ident,
532534

533535

534536
// Utilities
535-
fn ns_name(ns: namespace) -> str {
537+
fn ns_name(ns: namespace) -> istr {
536538
alt ns {
537-
ns_type. { ret "typename"; }
538-
ns_value. { ret "name"; }
539-
ns_module. { ret "modulename"; }
539+
ns_type. { ret ~"typename"; }
540+
ns_value. { ret ~"name"; }
541+
ns_module. { ret ~"modulename"; }
540542
}
541543
}
542544

543-
fn unresolved_err(e: &env, sc: &scopes, sp: &span, name: &ident, kind: &str) {
545+
fn unresolved_err(e: &env, sc: &scopes, sp: &span,
546+
name: &ident, kind: &istr) {
544547
fn find_fn_or_mod_scope(sc: scopes) -> scope {
545548
while true {
546549
alt sc {
@@ -558,20 +561,21 @@ fn unresolved_err(e: &env, sc: &scopes, sp: &span, name: &ident, kind: &str) {
558561
fail;
559562
}
560563
let err_scope = find_fn_or_mod_scope(sc);
561-
for rs: {ident: str, sc: scope} in e.reported {
562-
if str::eq(rs.ident, istr::to_estr(name))
564+
for rs: {ident: istr, sc: scope} in e.reported {
565+
if istr::eq(rs.ident, name)
563566
&& err_scope == rs.sc { ret; }
564567
}
565-
e.reported += [{ident: istr::to_estr(name), sc: err_scope}];
566-
e.sess.span_err(sp, mk_unresolved_msg(name, kind));
568+
e.reported += [{ident: name, sc: err_scope}];
569+
e.sess.span_err(sp, istr::to_estr(mk_unresolved_msg(name, kind)));
567570
}
568571

569-
fn unresolved_fatal(e: &env, sp: &span, id: &ident, kind: &str) -> ! {
570-
e.sess.span_fatal(sp, mk_unresolved_msg(id, kind));
572+
fn unresolved_fatal(e: &env, sp: &span, id: &ident, kind: &istr) -> ! {
573+
e.sess.span_fatal(sp, istr::to_estr(mk_unresolved_msg(id, kind)));
571574
}
572575

573-
fn mk_unresolved_msg(id: &ident, kind: &str) -> str {
574-
ret #fmt["unresolved %s: %s", kind, istr::to_estr(id)];
576+
fn mk_unresolved_msg(id: &ident, kind: &istr) -> istr {
577+
ret istr::from_estr(
578+
#fmt["unresolved %s: %s", istr::to_estr(kind), istr::to_estr(id)]);
575579
}
576580

577581
// Lookup helpers
@@ -602,7 +606,8 @@ fn lookup_path_strict(e: &env, sc: &scopes, sp: &span, pth: &ast::path_,
602606
fn lookup_in_scope_strict(e: &env, sc: scopes, sp: &span, name: &ident,
603607
ns: namespace) -> option::t<def> {
604608
alt lookup_in_scope(e, sc, sp, name, ns) {
605-
none. { unresolved_err(e, sc, sp, name, ns_name(ns)); ret none; }
609+
none. { unresolved_err(e, sc, sp, name,
610+
ns_name(ns)); ret none; }
606611
some(d) { ret some(d); }
607612
}
608613
}
@@ -888,7 +893,8 @@ fn found_def_item(i: &@ast::item, ns: namespace) -> option::t<def> {
888893
fn lookup_in_mod_strict(e: &env, sc: &scopes, m: def, sp: &span, name: &ident,
889894
ns: namespace, dr: dir) -> option::t<def> {
890895
alt lookup_in_mod(e, m, sp, name, ns, dr) {
891-
none. { unresolved_err(e, sc, sp, name, ns_name(ns)); ret none; }
896+
none. { unresolved_err(e, sc, sp, name,
897+
ns_name(ns)); ret none; }
892898
some(d) { ret some(d); }
893899
}
894900
}
@@ -900,14 +906,14 @@ fn lookup_in_mod(e: &env, m: &def, sp: &span, name: &ident, ns: namespace,
900906
// examining a module in an external crate
901907

902908
let cached = e.ext_cache.find({did: defid,
903-
ident: istr::to_estr(name), ns: ns});
909+
ident: name, ns: ns});
904910
if !is_none(cached) { ret cached; }
905911
let path = [name];
906912
if defid.node != -1 { path = e.ext_map.get(defid) + path; }
907913
let fnd = lookup_external(e, defid.crate, path, ns);
908914
if !is_none(fnd) {
909915
e.ext_cache.insert({did: defid,
910-
ident: istr::to_estr(name), ns: ns},
916+
ident: name, ns: ns},
911917
option::get(fnd));
912918
}
913919
ret fnd;
@@ -1214,26 +1220,26 @@ fn check_mod_name(e: &env, name: &ident, entries: list<mod_index_entry>) {
12141220
let saw_mod = false;
12151221
let saw_type = false;
12161222
let saw_value = false;
1217-
fn dup(e: &env, sp: &span, word: &str, name: &ident) {
1218-
e.sess.span_fatal(sp, "duplicate definition of " + word
1219-
+ istr::to_estr(name));
1223+
fn dup(e: &env, sp: &span, word: &istr, name: &ident) {
1224+
e.sess.span_fatal(sp, "duplicate definition of " +
1225+
istr::to_estr(word + name));
12201226
}
12211227
while true {
12221228
alt entries {
12231229
cons(entry, rest) {
12241230
if !is_none(lookup_in_mie(e, entry, ns_value)) {
12251231
if saw_value {
1226-
dup(e, mie_span(entry), "", name);
1232+
dup(e, mie_span(entry), ~"", name);
12271233
} else { saw_value = true; }
12281234
}
12291235
if !is_none(lookup_in_mie(e, entry, ns_type)) {
12301236
if saw_type {
1231-
dup(e, mie_span(entry), "type ", name);
1237+
dup(e, mie_span(entry), ~"type ", name);
12321238
} else { saw_type = true; }
12331239
}
12341240
if !is_none(lookup_in_mie(e, entry, ns_module)) {
12351241
if saw_mod {
1236-
dup(e, mie_span(entry), "module ", name);
1242+
dup(e, mie_span(entry), ~"module ", name);
12371243
} else { saw_mod = true; }
12381244
}
12391245
entries = *rest;
@@ -1264,20 +1270,20 @@ fn check_item(e: &@env, i: &@ast::item, x: &(), v: &vt<()>) {
12641270
ast::item_fn(f, ty_params) {
12651271
check_fn(*e, i.span, f);
12661272
ensure_unique(*e, i.span, typaram_names(ty_params), ident_id,
1267-
"type parameter");
1273+
~"type parameter");
12681274
}
12691275
ast::item_obj(ob, ty_params, _) {
12701276
fn field_name(field: &ast::obj_field) -> ident { ret field.ident; }
1271-
ensure_unique(*e, i.span, ob.fields, field_name, "object field");
1277+
ensure_unique(*e, i.span, ob.fields, field_name, ~"object field");
12721278
for m: @ast::method in ob.methods {
12731279
check_fn(*e, m.span, m.node.meth);
12741280
}
12751281
ensure_unique(*e, i.span, typaram_names(ty_params), ident_id,
1276-
"type parameter");
1282+
~"type parameter");
12771283
}
12781284
ast::item_tag(_, ty_params) {
12791285
ensure_unique(*e, i.span, typaram_names(ty_params), ident_id,
1280-
"type parameter");
1286+
~"type parameter");
12811287
}
12821288
_ { }
12831289
}
@@ -1292,13 +1298,13 @@ fn check_pat(ch: checker, p: &@ast::pat) {
12921298

12931299
fn check_arm(e: &@env, a: &ast::arm, x: &(), v: &vt<()>) {
12941300
visit::visit_arm(a, x, v);
1295-
let ch0 = checker(*e, "binding");
1301+
let ch0 = checker(*e, ~"binding");
12961302
check_pat(ch0, a.pats[0]);
12971303
let seen0 = ch0.seen;
12981304
let i = vec::len(a.pats);
12991305
while i > 1u {
13001306
i -= 1u;
1301-
let ch = checker(*e, "binding");
1307+
let ch = checker(*e, ~"binding");
13021308
check_pat(ch, a.pats[i]);
13031309

13041310
// Ensure the bindings introduced in this pattern are the same as in
@@ -1322,15 +1328,15 @@ fn check_arm(e: &@env, a: &ast::arm, x: &(), v: &vt<()>) {
13221328

13231329
fn check_block(e: &@env, b: &ast::blk, x: &(), v: &vt<()>) {
13241330
visit::visit_block(b, x, v);
1325-
let values = checker(*e, "value");
1326-
let types = checker(*e, "type");
1327-
let mods = checker(*e, "module");
1331+
let values = checker(*e, ~"value");
1332+
let types = checker(*e, ~"type");
1333+
let mods = checker(*e, ~"module");
13281334
for st: @ast::stmt in b.node.stmts {
13291335
alt st.node {
13301336
ast::stmt_decl(d, _) {
13311337
alt d.node {
13321338
ast::decl_local(locs) {
1333-
let local_values = checker(*e, "value");
1339+
let local_values = checker(*e, ~"value");
13341340
for loc in locs {
13351341
for each p in ast_util::pat_bindings(loc.node.pat) {
13361342
let ident = alt p.node { pat_bind(n) { n } };
@@ -1370,14 +1376,14 @@ fn check_block(e: &@env, b: &ast::blk, x: &(), v: &vt<()>) {
13701376

13711377
fn check_fn(e: &env, sp: &span, f: &ast::_fn) {
13721378
fn arg_name(a: &ast::arg) -> ident { ret a.ident; }
1373-
ensure_unique(e, sp, f.decl.inputs, arg_name, "argument");
1379+
ensure_unique(e, sp, f.decl.inputs, arg_name, ~"argument");
13741380
}
13751381

13761382
fn check_expr(e: &@env, ex: &@ast::expr, x: &(), v: &vt<()>) {
13771383
alt ex.node {
13781384
ast::expr_rec(fields, _) {
13791385
fn field_name(f: &ast::field) -> ident { ret f.node.ident; }
1380-
ensure_unique(*e, ex.span, fields, field_name, "field");
1386+
ensure_unique(*e, ex.span, fields, field_name, ~"field");
13811387
}
13821388
_ { }
13831389
}
@@ -1388,24 +1394,24 @@ fn check_ty(e: &@env, ty: &@ast::ty, x: &(), v: &vt<()>) {
13881394
alt ty.node {
13891395
ast::ty_rec(fields) {
13901396
fn field_name(f: &ast::ty_field) -> ident { ret f.node.ident; }
1391-
ensure_unique(*e, ty.span, fields, field_name, "field");
1397+
ensure_unique(*e, ty.span, fields, field_name, ~"field");
13921398
}
13931399
_ { }
13941400
}
13951401
visit::visit_ty(ty, x, v);
13961402
}
13971403

1398-
type checker = @{mutable seen: [ident], kind: str, sess: session};
1404+
type checker = @{mutable seen: [ident], kind: istr, sess: session};
13991405

1400-
fn checker(e: &env, kind: str) -> checker {
1406+
fn checker(e: &env, kind: &istr) -> checker {
14011407
let seen: [ident] = [];
14021408
ret @{mutable seen: seen, kind: kind, sess: e.sess};
14031409
}
14041410

14051411
fn check_name(ch: &checker, sp: &span, name: &ident) {
14061412
for s: ident in ch.seen {
14071413
if istr::eq(s, name) {
1408-
ch.sess.span_fatal(sp, "duplicate " + ch.kind
1414+
ch.sess.span_fatal(sp, "duplicate " + istr::to_estr(ch.kind)
14091415
+ " name: " + istr::to_estr(name));
14101416
}
14111417
}
@@ -1418,7 +1424,7 @@ fn add_name(ch: &checker, sp: &span, name: &ident) {
14181424
fn ident_id(i: &ident) -> ident { ret i; }
14191425

14201426
fn ensure_unique<T>(e: &env, sp: &span, elts: &[T], id: fn(&T) -> ident,
1421-
kind: &str) {
1427+
kind: &istr) {
14221428
let ch = checker(e, kind);
14231429
for elt: T in elts { add_name(ch, sp, id(elt)); }
14241430
}

trunk/src/comp/middle/shape.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ fn eq_res_info(a: &res_info, b: &res_info) -> bool {
8585
ret a.did.crate == b.did.crate && a.did.node == b.did.node && a.t == b.t;
8686
}
8787

88-
fn mk_global(ccx: &@crate_ctxt, name: &str, llval: ValueRef,
88+
fn mk_global(ccx: &@crate_ctxt, name: &istr, llval: ValueRef,
8989
internal: bool) -> ValueRef {
90-
let llglobal = istr::as_buf(istr::from_estr(name), { |buf|
90+
let llglobal = istr::as_buf(name, { |buf|
9191
lib::llvm::llvm::LLVMAddGlobal(ccx.llmod, val_ty(llval), buf)
9292
});
9393
lib::llvm::llvm::LLVMSetInitializer(llglobal, llval);
@@ -521,7 +521,7 @@ fn gen_tag_shapes(ccx: &@crate_ctxt) -> ValueRef {
521521
header += data;
522522
header += lv_table;
523523

524-
ret mk_global(ccx, "tag_shapes", C_bytes(header), true);
524+
ret mk_global(ccx, ~"tag_shapes", C_bytes(header), true);
525525
}
526526

527527
fn gen_resource_shapes(ccx: &@crate_ctxt) -> ValueRef {
@@ -534,7 +534,7 @@ fn gen_resource_shapes(ccx: &@crate_ctxt) -> ValueRef {
534534
i += 1u;
535535
}
536536

537-
ret mk_global(ccx, "resource_shapes", C_struct(dtors), true);
537+
ret mk_global(ccx, ~"resource_shapes", C_struct(dtors), true);
538538
}
539539

540540
fn gen_shape_tables(ccx: &@crate_ctxt) {

trunk/src/comp/middle/trans.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6403,7 +6403,7 @@ fn write_metadata(cx: &@crate_ctxt, crate: &@ast::crate) {
64036403

64046404
// Writes the current ABI version into the crate.
64056405
fn write_abi_version(ccx: &@crate_ctxt) {
6406-
shape::mk_global(ccx, "rust_abi_version", C_uint(abi::abi_version),
6406+
shape::mk_global(ccx, ~"rust_abi_version", C_uint(abi::abi_version),
64076407
false);
64086408
}
64096409

0 commit comments

Comments
 (0)