Skip to content

Commit b0f3686

Browse files
committed
auto merge of #6703 : sanxiyn/rust/allocation-lint, r=sanxiyn
Fix #6145. In particular, handle operator overloading.
2 parents d98cc99 + 8f80323 commit b0f3686

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+168
-189
lines changed

src/libextra/bitv.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ pub impl Bitv {
462462
*/
463463
fn to_str(&self) -> ~str {
464464
let mut rs = ~"";
465-
for self.each() |i| { if i { rs += ~"1"; } else { rs += ~"0"; } };
465+
for self.each() |i| { if i { rs += "1"; } else { rs += "0"; } };
466466
rs
467467
}
468468

src/libextra/getopts.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -193,19 +193,19 @@ pub enum Fail_ {
193193
pub fn fail_str(f: Fail_) -> ~str {
194194
return match f {
195195
ArgumentMissing(ref nm) => {
196-
~"Argument to option '" + *nm + ~"' missing."
196+
~"Argument to option '" + *nm + "' missing."
197197
}
198198
UnrecognizedOption(ref nm) => {
199-
~"Unrecognized option: '" + *nm + ~"'."
199+
~"Unrecognized option: '" + *nm + "'."
200200
}
201201
OptionMissing(ref nm) => {
202-
~"Required option '" + *nm + ~"' missing."
202+
~"Required option '" + *nm + "' missing."
203203
}
204204
OptionDuplicated(ref nm) => {
205-
~"Option '" + *nm + ~"' given more than once."
205+
~"Option '" + *nm + "' given more than once."
206206
}
207207
UnexpectedArgument(ref nm) => {
208-
~"Option " + *nm + ~" does not take an argument."
208+
~"Option " + *nm + " does not take an argument."
209209
}
210210
};
211211
}
@@ -618,7 +618,7 @@ pub mod groups {
618618
row += match hasarg {
619619
No => ~"",
620620
Yes => hint,
621-
Maybe => ~"[" + hint + ~"]",
621+
Maybe => ~"[" + hint + "]",
622622
};
623623

624624
// FIXME: #5516
@@ -650,10 +650,10 @@ pub mod groups {
650650
row
651651
});
652652

653-
return str::to_owned(brief) +
654-
~"\n\nOptions:\n" +
653+
return str::to_owned(brief) +
654+
"\n\nOptions:\n" +
655655
str::connect(rows, "\n") +
656-
~"\n\n";
656+
"\n\n";
657657
}
658658
} // end groups module
659659

src/libextra/json.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,18 @@ fn escape_str(s: &str) -> ~str {
4747
let mut escaped = ~"\"";
4848
for str::each_char(s) |c| {
4949
match c {
50-
'"' => escaped += ~"\\\"",
51-
'\\' => escaped += ~"\\\\",
52-
'\x08' => escaped += ~"\\b",
53-
'\x0c' => escaped += ~"\\f",
54-
'\n' => escaped += ~"\\n",
55-
'\r' => escaped += ~"\\r",
56-
'\t' => escaped += ~"\\t",
50+
'"' => escaped += "\\\"",
51+
'\\' => escaped += "\\\\",
52+
'\x08' => escaped += "\\b",
53+
'\x0c' => escaped += "\\f",
54+
'\n' => escaped += "\\n",
55+
'\r' => escaped += "\\r",
56+
'\t' => escaped += "\\t",
5757
_ => escaped += str::from_char(c)
5858
}
5959
};
6060

61-
escaped += ~"\"";
61+
escaped += "\"";
6262

6363
escaped
6464
}

src/libextra/md4.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ pub fn md4_str(msg: &[u8]) -> ~str {
115115
let mut i = 0u32;
116116
while i < 4u32 {
117117
let byte = (u >> (i * 8u32)) as u8;
118-
if byte <= 16u8 { result += ~"0"; }
118+
if byte <= 16u8 { result += "0"; }
119119
result += uint::to_str_radix(byte as uint, 16u);
120120
i += 1u32;
121121
}

src/librustc/back/arm.rs

+20-20
Original file line numberDiff line numberDiff line change
@@ -22,42 +22,42 @@ pub fn get_target_strs(target_os: session::os) -> target_strs::t {
2222
data_layout: match target_os {
2323
session::os_macos => {
2424
~"e-p:32:32:32" +
25-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
26-
~"-f32:32:32-f64:64:64" +
27-
~"-v64:64:64-v128:64:128" +
28-
~"-a0:0:64-n32"
25+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
26+
"-f32:32:32-f64:64:64" +
27+
"-v64:64:64-v128:64:128" +
28+
"-a0:0:64-n32"
2929
}
3030

3131
session::os_win32 => {
3232
~"e-p:32:32:32" +
33-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
34-
~"-f32:32:32-f64:64:64" +
35-
~"-v64:64:64-v128:64:128" +
36-
~"-a0:0:64-n32"
33+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
34+
"-f32:32:32-f64:64:64" +
35+
"-v64:64:64-v128:64:128" +
36+
"-a0:0:64-n32"
3737
}
3838

3939
session::os_linux => {
4040
~"e-p:32:32:32" +
41-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
42-
~"-f32:32:32-f64:64:64" +
43-
~"-v64:64:64-v128:64:128" +
44-
~"-a0:0:64-n32"
41+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
42+
"-f32:32:32-f64:64:64" +
43+
"-v64:64:64-v128:64:128" +
44+
"-a0:0:64-n32"
4545
}
4646

4747
session::os_android => {
4848
~"e-p:32:32:32" +
49-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
50-
~"-f32:32:32-f64:64:64" +
51-
~"-v64:64:64-v128:64:128" +
52-
~"-a0:0:64-n32"
49+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
50+
"-f32:32:32-f64:64:64" +
51+
"-v64:64:64-v128:64:128" +
52+
"-a0:0:64-n32"
5353
}
5454

5555
session::os_freebsd => {
5656
~"e-p:32:32:32" +
57-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
58-
~"-f32:32:32-f64:64:64" +
59-
~"-v64:64:64-v128:64:128" +
60-
~"-a0:0:64-n32"
57+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
58+
"-f32:32:32-f64:64:64" +
59+
"-v64:64:64-v128:64:128" +
60+
"-a0:0:64-n32"
6161
}
6262
},
6363

src/librustc/back/link.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pub fn llvm_err(sess: Session, msg: ~str) -> ! {
5454
if cstr == ptr::null() {
5555
sess.fatal(msg);
5656
} else {
57-
sess.fatal(msg + ~": " + str::raw::from_c_str(cstr));
57+
sess.fatal(msg + ": " + str::raw::from_c_str(cstr));
5858
}
5959
}
6060
}
@@ -653,13 +653,13 @@ pub fn sanitize(s: &str) -> ~str {
653653
let mut result = ~"";
654654
for str::each_char(s) |c| {
655655
match c {
656-
'@' => result += ~"_sbox_",
657-
'~' => result += ~"_ubox_",
658-
'*' => result += ~"_ptr_",
659-
'&' => result += ~"_ref_",
660-
',' => result += ~"_",
656+
'@' => result += "_sbox_",
657+
'~' => result += "_ubox_",
658+
'*' => result += "_ptr_",
659+
'&' => result += "_ref_",
660+
',' => result += "_",
661661

662-
'{' | '(' => result += ~"_of_",
662+
'{' | '(' => result += "_of_",
663663
'a' .. 'z'
664664
| 'A' .. 'Z'
665665
| '0' .. '9'
@@ -693,7 +693,7 @@ pub fn mangle(sess: Session, ss: path) -> ~str {
693693
n += fmt!("%u%s", str::len(sani), sani);
694694
} }
695695
}
696-
n += ~"E"; // End name-sequence.
696+
n += "E"; // End name-sequence.
697697
n
698698
}
699699

src/librustc/back/mips.rs

+20-20
Original file line numberDiff line numberDiff line change
@@ -22,42 +22,42 @@ pub fn get_target_strs(target_os: session::os) -> target_strs::t {
2222
data_layout: match target_os {
2323
session::os_macos => {
2424
~"e-p:32:32:32" +
25-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
26-
~"-f32:32:32-f64:64:64" +
27-
~"-v64:64:64-v128:64:128" +
28-
~"-a0:0:64-n32"
25+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
26+
"-f32:32:32-f64:64:64" +
27+
"-v64:64:64-v128:64:128" +
28+
"-a0:0:64-n32"
2929
}
3030

3131
session::os_win32 => {
3232
~"e-p:32:32:32" +
33-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
34-
~"-f32:32:32-f64:64:64" +
35-
~"-v64:64:64-v128:64:128" +
36-
~"-a0:0:64-n32"
33+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
34+
"-f32:32:32-f64:64:64" +
35+
"-v64:64:64-v128:64:128" +
36+
"-a0:0:64-n32"
3737
}
3838

3939
session::os_linux => {
4040
~"e-p:32:32:32" +
41-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
42-
~"-f32:32:32-f64:64:64" +
43-
~"-v64:64:64-v128:64:128" +
44-
~"-a0:0:64-n32"
41+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
42+
"-f32:32:32-f64:64:64" +
43+
"-v64:64:64-v128:64:128" +
44+
"-a0:0:64-n32"
4545
}
4646

4747
session::os_android => {
4848
~"e-p:32:32:32" +
49-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
50-
~"-f32:32:32-f64:64:64" +
51-
~"-v64:64:64-v128:64:128" +
52-
~"-a0:0:64-n32"
49+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
50+
"-f32:32:32-f64:64:64" +
51+
"-v64:64:64-v128:64:128" +
52+
"-a0:0:64-n32"
5353
}
5454

5555
session::os_freebsd => {
5656
~"e-p:32:32:32" +
57-
~"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
58-
~"-f32:32:32-f64:64:64" +
59-
~"-v64:64:64-v128:64:128" +
60-
~"-a0:0:64-n32"
57+
"-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64" +
58+
"-f32:32:32-f64:64:64" +
59+
"-v64:64:64-v128:64:128" +
60+
"-a0:0:64-n32"
6161
}
6262
},
6363

src/librustc/back/x86.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ pub fn get_target_strs(target_os: session::os) -> target_strs::t {
2323
data_layout: match target_os {
2424
session::os_macos => {
2525
~"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16" +
26-
~"-i32:32:32-i64:32:64" +
27-
~"-f32:32:32-f64:32:64-v64:64:64" +
28-
~"-v128:128:128-a0:0:64-f80:128:128" + ~"-n8:16:32"
26+
"-i32:32:32-i64:32:64" +
27+
"-f32:32:32-f64:32:64-v64:64:64" +
28+
"-v128:128:128-a0:0:64-f80:128:128" + "-n8:16:32"
2929
}
3030

3131
session::os_win32 => {

src/librustc/back/x86_64.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,32 @@ pub fn get_target_strs(target_os: session::os) -> target_strs::t {
2323
data_layout: match target_os {
2424
session::os_macos => {
2525
~"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"+
26-
~"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
27-
~"s0:64:64-f80:128:128-n8:16:32:64"
26+
"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
27+
"s0:64:64-f80:128:128-n8:16:32:64"
2828
}
2929

3030
session::os_win32 => {
3131
// FIXME: Test this. Copied from linux (#2398)
3232
~"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"+
33-
~"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
34-
~"s0:64:64-f80:128:128-n8:16:32:64-S128"
33+
"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
34+
"s0:64:64-f80:128:128-n8:16:32:64-S128"
3535
}
3636

3737
session::os_linux => {
3838
~"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"+
39-
~"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
40-
~"s0:64:64-f80:128:128-n8:16:32:64-S128"
39+
"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
40+
"s0:64:64-f80:128:128-n8:16:32:64-S128"
4141
}
4242
session::os_android => {
4343
~"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"+
44-
~"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
45-
~"s0:64:64-f80:128:128-n8:16:32:64-S128"
44+
"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
45+
"s0:64:64-f80:128:128-n8:16:32:64-S128"
4646
}
4747

4848
session::os_freebsd => {
4949
~"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-"+
50-
~"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
51-
~"s0:64:64-f80:128:128-n8:16:32:64-S128"
50+
"f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-"+
51+
"s0:64:64-f80:128:128-n8:16:32:64-S128"
5252
}
5353
},
5454

src/librustc/metadata/creader.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ fn visit_item(e: @mut Env, i: @ast::item) {
170170
if *nn == ~"" {
171171
e.diag.span_fatal(
172172
i.span,
173-
~"empty #[link_name] not allowed; use " +
174-
~"#[nolink].");
173+
"empty #[link_name] not allowed; use \
174+
#[nolink].");
175175
}
176176
nn
177177
}
@@ -183,7 +183,7 @@ fn visit_item(e: @mut Env, i: @ast::item) {
183183
}
184184
if !link_args.is_empty() && already_added {
185185
e.diag.span_fatal(i.span, ~"library '" + *foreign_name +
186-
~"' already added: can't specify link_args.");
186+
"' already added: can't specify link_args.");
187187
}
188188
}
189189
ast::anonymous => { /* do nothing */ }

src/librustc/metadata/decoder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ pub fn _each_path(intr: @ident_interner,
528528
if path_is_empty {
529529
reexport_path = reexport_name;
530530
} else {
531-
reexport_path = path + ~"::" + reexport_name;
531+
reexport_path = path + "::" + reexport_name;
532532
}
533533

534534
// This reexport may be in yet another crate

src/librustc/metadata/encoder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@ fn encode_info_for_item(ecx: @EncodeContext,
922922

923923
// >:-<
924924
let mut impl_path = vec::append(~[], path);
925-
impl_path += ~[ast_map::path_name(item.ident)];
925+
impl_path += [ast_map::path_name(item.ident)];
926926

927927
for methods.each |m| {
928928
index.push(entry {val: m.id, pos: ebml_w.writer.tell()});

src/librustc/metadata/loader.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ fn find_library_crate_aux(
8181
filesearch: @filesearch::FileSearch
8282
) -> Option<(~str, @~[u8])> {
8383
let crate_name = crate_name_from_metas(cx.metas);
84-
let prefix: ~str = prefix + *crate_name + ~"-";
84+
let prefix: ~str = prefix + *crate_name + "-";
8585
let suffix: ~str = /*bad*/copy suffix;
8686

8787
let mut matches = ~[];
@@ -262,7 +262,7 @@ pub fn list_file_metadata(intr: @ident_interner,
262262
option::Some(bytes) => decoder::list_crate_metadata(intr, bytes, out),
263263
option::None => {
264264
out.write_str(~"could not find metadata in "
265-
+ path.to_str() + ~".\n");
265+
+ path.to_str() + ".\n");
266266
}
267267
}
268268
}

src/librustc/metadata/tyencode.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ pub fn enc_ty(w: @io::Writer, cx: @ctxt, t: ty::t) {
8989
let abbrev_len = 3u + estimate_sz(pos) + estimate_sz(len);
9090
if abbrev_len < len {
9191
// I.e. it's actually an abbreviation.
92-
let s = ~"#" + uint::to_str_radix(pos, 16u) + ~":" +
93-
uint::to_str_radix(len, 16u) + ~"#";
92+
let s = ~"#" + uint::to_str_radix(pos, 16u) + ":" +
93+
uint::to_str_radix(len, 16u) + "#";
9494
let a = ty_abbrev { pos: pos, len: len, s: @s };
9595
abbrevs.insert(t, a);
9696
}

src/librustc/middle/check_const.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ pub fn check_expr(sess: Session,
110110
if !ty::type_is_numeric(ety) && !ty::type_is_unsafe_ptr(ety) {
111111
sess.span_err(e.span, ~"can not cast to `" +
112112
ppaux::ty_to_str(tcx, ety) +
113-
~"` in a constant expression");
113+
"` in a constant expression");
114114
}
115115
}
116116
expr_path(pth) => {

src/librustc/middle/check_match.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ pub fn check_exhaustive(cx: @MatchCheckCtxt, sp: span, pats: ~[@pat]) {
171171
}
172172
};
173173
let msg = ~"non-exhaustive patterns" + match ext {
174-
Some(ref s) => ~": " + **s + ~" not covered",
174+
Some(ref s) => ~": " + **s + " not covered",
175175
None => ~""
176176
};
177177
cx.tcx.sess.span_err(sp, msg);

0 commit comments

Comments
 (0)