Skip to content

Commit 1d24cd8

Browse files
committed
---
yaml --- r: 79797 b: refs/heads/try c: b609d02 h: refs/heads/master i: 79795: eb00ec4 v: v3
1 parent c7fbacc commit 1d24cd8

File tree

20 files changed

+431
-461
lines changed

20 files changed

+431
-461
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: ba9fa89bfb4aae53db93e9ecac31807af96356fc
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 54ae2800ffb30513f89ce13d27ac3c8d095d98ac
5-
refs/heads/try: 8445009a846877fe66160d126566e9757db05cd2
5+
refs/heads/try: b609d022c4df307e4d68499b063c81a9ecb1e9cf
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/librustc/back/link.rs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ use syntax::ast_map::{path, path_mod, path_name, path_pretty_name};
3939
use syntax::attr;
4040
use syntax::attr::{AttrMetaMethods};
4141
use syntax::print::pprust;
42-
use syntax::parse::token;
4342

4443
#[deriving(Clone, Eq)]
4544
pub enum output_type {
@@ -678,8 +677,8 @@ pub fn symbol_hash(tcx: ty::ctxt,
678677
write_string(symbol_hasher, "-");
679678
write_string(symbol_hasher, encoder::encoded_ty(tcx, t));
680679
let mut hash = truncated_hash_result(symbol_hasher);
681-
// Prefix with _ so that it never blends into adjacent digits
682-
hash.unshift_char('_');
680+
// Prefix with 'h' so that it never blends into adjacent digits
681+
hash.unshift_char('h');
683682
// tjc: allocation is unfortunate; need to change std::hash
684683
hash.to_managed()
685684
}
@@ -722,7 +721,7 @@ pub fn sanitize(s: &str) -> ~str {
722721
'a' .. 'z'
723722
| 'A' .. 'Z'
724723
| '0' .. '9'
725-
| '_' | '.' => result.push_char(c),
724+
| '_' | '.' | '$' => result.push_char(c),
726725

727726
_ => {
728727
let mut tstr = ~"";
@@ -847,28 +846,25 @@ pub fn mangle_internal_name_by_type_and_seq(ccx: &mut CrateContext,
847846
name: &str) -> ~str {
848847
let s = ppaux::ty_to_str(ccx.tcx, t);
849848
let hash = get_symbol_hash(ccx, t);
849+
let (_, name) = gensym_name(name);
850850
return mangle(ccx.sess,
851-
~[path_name(ccx.sess.ident_of(s)),
852-
path_name(gensym_name(name))],
851+
~[path_name(ccx.sess.ident_of(s)), name],
853852
Some(hash.as_slice()),
854853
None);
855854
}
856855

857856
pub fn mangle_internal_name_by_path_and_seq(ccx: &mut CrateContext,
858857
mut path: path,
859858
flav: &str) -> ~str {
860-
path.push(path_name(gensym_name(flav)));
859+
let (_, name) = gensym_name(flav);
860+
path.push(name);
861861
mangle(ccx.sess, path, None, None)
862862
}
863863

864864
pub fn mangle_internal_name_by_path(ccx: &mut CrateContext, path: path) -> ~str {
865865
mangle(ccx.sess, path, None, None)
866866
}
867867

868-
pub fn mangle_internal_name_by_seq(_ccx: &mut CrateContext, flav: &str) -> ~str {
869-
return fmt!("%s_%u", flav, token::gensym(flav));
870-
}
871-
872868

873869
pub fn output_dll_filename(os: session::Os, lm: LinkMeta) -> ~str {
874870
let (dll_prefix, dll_suffix) = match os {

branches/try/src/librustc/metadata/encoder.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,12 +1063,13 @@ fn encode_info_for_item(ecx: &EncodeContext,
10631063
let impl_vtables = ty::lookup_impl_vtables(tcx, def_id);
10641064
encode_impl_vtables(ebml_w, ecx, &impl_vtables);
10651065
}
1066-
encode_path(ecx, ebml_w, path, ast_map::path_name(item.ident));
1066+
let elt = ast_map::impl_pretty_name(opt_trait, ty, item.ident);
1067+
encode_path(ecx, ebml_w, path, elt);
10671068
ebml_w.end_tag();
10681069

10691070
// >:-<
10701071
let mut impl_path = vec::append(~[], path);
1071-
impl_path.push(ast_map::path_name(item.ident));
1072+
impl_path.push(elt);
10721073

10731074
// Iterate down the methods, emitting them. We rely on the
10741075
// assumption that all of the actually implemented methods

branches/try/src/librustc/middle/trans/common.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,17 @@ use std::hashmap::{HashMap};
3939
use std::libc::{c_uint, c_longlong, c_ulonglong, c_char};
4040
use std::vec;
4141
use syntax::ast::Ident;
42-
use syntax::ast_map::{path, path_elt};
42+
use syntax::ast_map::{path, path_elt, path_pretty_name};
4343
use syntax::codemap::Span;
4444
use syntax::parse::token;
4545
use syntax::{ast, ast_map};
4646

4747
pub use middle::trans::context::CrateContext;
4848

49-
pub fn gensym_name(name: &str) -> Ident {
50-
token::str_to_ident(fmt!("%s_%u", name, token::gensym(name)))
49+
pub fn gensym_name(name: &str) -> (Ident, path_elt) {
50+
let name = token::gensym(name);
51+
let ident = Ident::new(name);
52+
(ident, path_pretty_name(ident, name as u64))
5153
}
5254

5355
pub struct tydesc_info {

branches/try/src/librustc/middle/trans/debuginfo.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ use std::ptr;
6969
use std::vec;
7070
use syntax::codemap::Span;
7171
use syntax::{ast, codemap, ast_util, ast_map, opt_vec};
72+
use syntax::parse::token;
7273
use syntax::parse::token::special_idents;
7374

7475
static DW_LANG_RUST: c_uint = 0x9000;
@@ -513,7 +514,8 @@ pub fn create_function_debug_context(cx: &mut CrateContext,
513514
ast_map::node_expr(ref expr) => {
514515
match expr.node {
515516
ast::ExprFnBlock(ref fn_decl, ref top_level_block) => {
516-
let name = gensym_name("fn");
517+
let name = fmt!("fn%u", token::gensym("fn"));
518+
let name = token::str_to_ident(name);
517519
(name, fn_decl,
518520
// This is not quite right. It should actually inherit the generics of the
519521
// enclosing function.

branches/try/src/librustc/middle/trans/meth.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ use std::vec;
3737
use syntax::ast_map::{path, path_mod, path_name, path_pretty_name};
3838
use syntax::ast_util;
3939
use syntax::{ast, ast_map};
40+
use syntax::parse::token;
4041
use syntax::visit;
4142

4243
/**
@@ -568,8 +569,8 @@ pub fn make_vtable(ccx: &mut CrateContext,
568569
}
569570

570571
let tbl = C_struct(components);
571-
let vtable = ccx.sess.str_of(gensym_name("vtable"));
572-
let vt_gvar = do vtable.with_c_str |buf| {
572+
let sym = token::gensym("vtable");
573+
let vt_gvar = do fmt!("vtable%u", sym).with_c_str |buf| {
573574
llvm::LLVMAddGlobal(ccx.llmod, val_ty(tbl).to_ref(), buf)
574575
};
575576
llvm::LLVMSetInitializer(vt_gvar, tbl);

branches/try/src/librustc/middle/trans/monomorphize.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ use util::ppaux::{Repr,ty_to_str};
3131

3232
use syntax::ast;
3333
use syntax::ast_map;
34-
use syntax::ast_map::path_name;
3534
use syntax::ast_util::local_def;
3635

3736
pub fn monomorphic_fn(ccx: @mut CrateContext,
@@ -194,7 +193,7 @@ pub fn monomorphic_fn(ccx: @mut CrateContext,
194193
}
195194
ccx.monomorphizing.insert(fn_id, depth + 1);
196195

197-
let elt = path_name(gensym_name(ccx.sess.str_of(name)));
196+
let (_, elt) = gensym_name(ccx.sess.str_of(name));
198197
let mut pt = (*pt).clone();
199198
pt.push(elt);
200199
let s = mangle_exported_name(ccx, pt.clone(), mono_ty);

branches/try/src/libstd/num/i16.rs

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
//! Operations and constants for `i16`
1212
13-
use num::{BitCount, CheckedAdd, CheckedSub, CheckedMul};
14-
use option::{Option, Some, None};
13+
use num::BitCount;
1514
use unstable::intrinsics;
1615

1716
pub use self::generated::*;
@@ -31,33 +30,3 @@ impl BitCount for i16 {
3130
#[inline]
3231
fn trailing_zeros(&self) -> i16 { unsafe { intrinsics::cttz16(*self) } }
3332
}
34-
35-
impl CheckedAdd for i16 {
36-
#[inline]
37-
fn checked_add(&self, v: &i16) -> Option<i16> {
38-
unsafe {
39-
let (x, y) = intrinsics::i16_add_with_overflow(*self, *v);
40-
if y { None } else { Some(x) }
41-
}
42-
}
43-
}
44-
45-
impl CheckedSub for i16 {
46-
#[inline]
47-
fn checked_sub(&self, v: &i16) -> Option<i16> {
48-
unsafe {
49-
let (x, y) = intrinsics::i16_sub_with_overflow(*self, *v);
50-
if y { None } else { Some(x) }
51-
}
52-
}
53-
}
54-
55-
impl CheckedMul for i16 {
56-
#[inline]
57-
fn checked_mul(&self, v: &i16) -> Option<i16> {
58-
unsafe {
59-
let (x, y) = intrinsics::i16_mul_with_overflow(*self, *v);
60-
if y { None } else { Some(x) }
61-
}
62-
}
63-
}

branches/try/src/libstd/num/i32.rs

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
//! Operations and constants for `i32`
1212
13-
use num::{BitCount, CheckedAdd, CheckedSub, CheckedMul};
14-
use option::{Option, Some, None};
13+
use num::BitCount;
1514
use unstable::intrinsics;
1615

1716
pub use self::generated::*;
@@ -31,33 +30,3 @@ impl BitCount for i32 {
3130
#[inline]
3231
fn trailing_zeros(&self) -> i32 { unsafe { intrinsics::cttz32(*self) } }
3332
}
34-
35-
impl CheckedAdd for i32 {
36-
#[inline]
37-
fn checked_add(&self, v: &i32) -> Option<i32> {
38-
unsafe {
39-
let (x, y) = intrinsics::i32_add_with_overflow(*self, *v);
40-
if y { None } else { Some(x) }
41-
}
42-
}
43-
}
44-
45-
impl CheckedSub for i32 {
46-
#[inline]
47-
fn checked_sub(&self, v: &i32) -> Option<i32> {
48-
unsafe {
49-
let (x, y) = intrinsics::i32_sub_with_overflow(*self, *v);
50-
if y { None } else { Some(x) }
51-
}
52-
}
53-
}
54-
55-
impl CheckedMul for i32 {
56-
#[inline]
57-
fn checked_mul(&self, v: &i32) -> Option<i32> {
58-
unsafe {
59-
let (x, y) = intrinsics::i32_mul_with_overflow(*self, *v);
60-
if y { None } else { Some(x) }
61-
}
62-
}
63-
}

branches/try/src/libstd/num/i64.rs

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
//! Operations and constants for `i64`
1212
13-
use num::{BitCount, CheckedAdd, CheckedSub, CheckedMul};
14-
use option::{Option, Some, None};
13+
use num::BitCount;
1514
use unstable::intrinsics;
1615

1716
pub use self::generated::*;
@@ -31,35 +30,3 @@ impl BitCount for i64 {
3130
#[inline]
3231
fn trailing_zeros(&self) -> i64 { unsafe { intrinsics::cttz64(*self) } }
3332
}
34-
35-
impl CheckedAdd for i64 {
36-
#[inline]
37-
fn checked_add(&self, v: &i64) -> Option<i64> {
38-
unsafe {
39-
let (x, y) = intrinsics::i64_add_with_overflow(*self, *v);
40-
if y { None } else { Some(x) }
41-
}
42-
}
43-
}
44-
45-
impl CheckedSub for i64 {
46-
#[inline]
47-
fn checked_sub(&self, v: &i64) -> Option<i64> {
48-
unsafe {
49-
let (x, y) = intrinsics::i64_sub_with_overflow(*self, *v);
50-
if y { None } else { Some(x) }
51-
}
52-
}
53-
}
54-
55-
// FIXME: #8449: should not be disabled on 32-bit
56-
#[cfg(target_word_size = "64")]
57-
impl CheckedMul for i64 {
58-
#[inline]
59-
fn checked_mul(&self, v: &i64) -> Option<i64> {
60-
unsafe {
61-
let (x, y) = intrinsics::i64_mul_with_overflow(*self, *v);
62-
if y { None } else { Some(x) }
63-
}
64-
}
65-
}

branches/try/src/libstd/num/i8.rs

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
//! Operations and constants for `i8`
1212
13-
use num::{BitCount, CheckedAdd, CheckedSub, CheckedMul};
14-
use option::{Option, Some, None};
13+
use num::BitCount;
1514
use unstable::intrinsics;
1615

1716
pub use self::generated::*;
@@ -31,33 +30,3 @@ impl BitCount for i8 {
3130
#[inline]
3231
fn trailing_zeros(&self) -> i8 { unsafe { intrinsics::cttz8(*self) } }
3332
}
34-
35-
impl CheckedAdd for i8 {
36-
#[inline]
37-
fn checked_add(&self, v: &i8) -> Option<i8> {
38-
unsafe {
39-
let (x, y) = intrinsics::i8_add_with_overflow(*self, *v);
40-
if y { None } else { Some(x) }
41-
}
42-
}
43-
}
44-
45-
impl CheckedSub for i8 {
46-
#[inline]
47-
fn checked_sub(&self, v: &i8) -> Option<i8> {
48-
unsafe {
49-
let (x, y) = intrinsics::i8_sub_with_overflow(*self, *v);
50-
if y { None } else { Some(x) }
51-
}
52-
}
53-
}
54-
55-
impl CheckedMul for i8 {
56-
#[inline]
57-
fn checked_mul(&self, v: &i8) -> Option<i8> {
58-
unsafe {
59-
let (x, y) = intrinsics::i8_mul_with_overflow(*self, *v);
60-
if y { None } else { Some(x) }
61-
}
62-
}
63-
}

0 commit comments

Comments
 (0)