mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
std: Rename the ToStr
trait to ToString
, and to_str
to to_string
.
[breaking-change]
This commit is contained in:
parent
bfe4ddfdea
commit
12c334a77b
@ -187,7 +187,7 @@ pub fn log_config(config: &Config) {
|
||||
opt_str(&config.filter
|
||||
.as_ref()
|
||||
.map(|re| {
|
||||
re.to_str().into_string()
|
||||
re.to_string().into_string()
|
||||
}))));
|
||||
logv(c, format!("runtool: {}", opt_str(&config.runtool)));
|
||||
logv(c, format!("host-rustcflags: {}",
|
||||
|
@ -31,7 +31,7 @@ pub fn load_errors(re: &Regex, testfile: &Path) -> Vec<ExpectedError> {
|
||||
fn parse_expected(line_num: uint, line: &str, re: &Regex) -> Option<ExpectedError> {
|
||||
re.captures(line).and_then(|caps| {
|
||||
let adjusts = caps.name("adjusts").len();
|
||||
let kind = caps.name("kind").to_ascii().to_lower().into_str();
|
||||
let kind = caps.name("kind").to_ascii().to_lower().into_string();
|
||||
let msg = caps.name("msg").trim().to_string();
|
||||
|
||||
debug!("line={} kind={} msg={}", line_num, kind, msg);
|
||||
|
@ -41,7 +41,7 @@ pub fn make_new_path(path: &str) -> String {
|
||||
Some(curr) => {
|
||||
format!("{}{}{}", path, path_div(), curr)
|
||||
}
|
||||
None => path.to_str()
|
||||
None => path.to_string()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -465,7 +465,7 @@ fn stringifier(channel: &DuplexStream<String, uint>) {
|
||||
let mut value: uint;
|
||||
loop {
|
||||
value = channel.recv();
|
||||
channel.send(value.to_str());
|
||||
channel.send(value.to_string());
|
||||
if value == 0 { break; }
|
||||
}
|
||||
}
|
||||
@ -478,7 +478,7 @@ send strings (the first type parameter) and receive `uint` messages
|
||||
(the second type parameter). The body itself simply loops, reading
|
||||
from the channel and then sending its response back. The actual
|
||||
response itself is simply the stringified version of the received value,
|
||||
`uint::to_str(value)`.
|
||||
`uint::to_string(value)`.
|
||||
|
||||
Here is the code for the parent task:
|
||||
|
||||
@ -492,7 +492,7 @@ use std::comm::duplex;
|
||||
# let mut value: uint;
|
||||
# loop {
|
||||
# value = channel.recv();
|
||||
# channel.send(value.to_str());
|
||||
# channel.send(value.to_string());
|
||||
# if value == 0u { break; }
|
||||
# }
|
||||
# }
|
||||
|
@ -23,7 +23,7 @@ msgstr ""
|
||||
#| "[tarball]: http://static.rust-lang.org/dist/rust-nightly.tar.gz [win-exe]: "
|
||||
#| "http://static.rust-lang.org/dist/rust-nightly-install.exe"
|
||||
msgid ""
|
||||
"Use [`ToStr`](http://static.rust-lang.org/doc/master/std/to_str/trait.ToStr."
|
||||
"Use [`ToString`](http://static.rust-lang.org/doc/master/std/to_str/trait.ToString."
|
||||
"html)."
|
||||
msgstr ""
|
||||
"[tarball]: http://static.rust-lang.org/dist/rust-nightly.tar.gz\n"
|
||||
@ -34,7 +34,7 @@ msgstr ""
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "~~~~ let x: f64 = 4.0; let y: uint = x as uint; assert!(y == 4u); ~~~~"
|
||||
msgid "~~~ let x: int = 42; let y: String = x.to_str(); ~~~"
|
||||
msgid "~~~ let x: int = 42; let y: String = x.to_string(); ~~~"
|
||||
msgstr ""
|
||||
"~~~~\n"
|
||||
"let x: f64 = 4.0;\n"
|
||||
|
@ -1656,7 +1656,7 @@ msgstr ""
|
||||
#| msgid "~~~~ {.ignore} // main.rs extern crate world; fn main() { println(~\"hello \" + world::explore()); } ~~~~"
|
||||
msgid ""
|
||||
"impl Printable for int {\n"
|
||||
" fn to_string(&self) -> String { self.to_str() }\n"
|
||||
" fn to_string(&self) -> String { self.to_string() }\n"
|
||||
"}\n"
|
||||
msgstr ""
|
||||
"~~~~ {.ignore}\n"
|
||||
|
@ -4410,9 +4410,9 @@ msgstr ""
|
||||
|
||||
#. type: Plain text
|
||||
#: src/doc/tutorial.md:2528
|
||||
msgid "#[deriving(Rand, ToStr)] enum ABC { A, B, C } ~~~"
|
||||
msgid "#[deriving(Rand, ToString)] enum ABC { A, B, C } ~~~"
|
||||
msgstr ""
|
||||
"#[deriving(Rand, ToStr)]\n"
|
||||
"#[deriving(Rand, ToString)]\n"
|
||||
"enum ABC { A, B, C }\n"
|
||||
"~~~"
|
||||
|
||||
@ -4422,15 +4422,15 @@ msgstr ""
|
||||
#| msgid ""
|
||||
#| "The full list of derivable traits is `Eq`, `TotalEq`, `Ord`, `TotalOrd`, "
|
||||
#| "`Encodable` `Decodable`, `Clone`, `DeepClone`, `Hash`, `Rand`, "
|
||||
#| "`Zero`, and `ToStr`."
|
||||
#| "`Zero`, and `ToString`."
|
||||
msgid ""
|
||||
"The full list of derivable traits is `Eq`, `TotalEq`, `Ord`, `TotalOrd`, "
|
||||
"`Encodable` `Decodable`, `Clone`, `DeepClone`, `Hash`, `Rand`, "
|
||||
"`Default`, `Zero`, and `ToStr`."
|
||||
"`Default`, `Zero`, and `ToString`."
|
||||
msgstr ""
|
||||
"実装を自動的に導出可能なトレイトは、 `Eq`, `TotalEq`, `Ord`, `TotalOrd`, "
|
||||
"`Encodable` `Decodable`, `Clone`, `DeepClone`, `Hash`, `Rand`, `Zero`, "
|
||||
"および `ToStr` です。."
|
||||
"および `ToString` です。."
|
||||
|
||||
#. type: Plain text
|
||||
#: src/doc/tutorial.md:2534
|
||||
|
@ -3671,15 +3671,15 @@ An example of an object type:
|
||||
|
||||
~~~~
|
||||
trait Printable {
|
||||
fn to_string(&self) -> String;
|
||||
fn stringify(&self) -> String;
|
||||
}
|
||||
|
||||
impl Printable for int {
|
||||
fn to_string(&self) -> String { self.to_str() }
|
||||
fn stringify(&self) -> String { self.to_string() }
|
||||
}
|
||||
|
||||
fn print(a: Box<Printable>) {
|
||||
println!("{}", a.to_string());
|
||||
println!("{}", a.stringify());
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
@ -100,7 +100,7 @@ syn keyword rustTrait RawPtr
|
||||
syn keyword rustTrait Buffer Writer Reader Seek
|
||||
syn keyword rustTrait Str StrVector StrSlice OwnedStr
|
||||
syn keyword rustTrait IntoMaybeOwned StrAllocating
|
||||
syn keyword rustTrait ToStr IntoStr
|
||||
syn keyword rustTrait ToString IntoStr
|
||||
syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4
|
||||
syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8
|
||||
syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12
|
||||
|
@ -60,17 +60,17 @@ enum BitvVariant { Big(BigBitv), Small(SmallBitv) }
|
||||
/// bv.set(3, true);
|
||||
/// bv.set(5, true);
|
||||
/// bv.set(7, true);
|
||||
/// println!("{}", bv.to_str());
|
||||
/// println!("{}", bv.to_string());
|
||||
/// println!("total bits set to true: {}", bv.iter().filter(|x| *x).count());
|
||||
///
|
||||
/// // flip all values in bitvector, producing non-primes less than 10
|
||||
/// bv.negate();
|
||||
/// println!("{}", bv.to_str());
|
||||
/// println!("{}", bv.to_string());
|
||||
/// println!("total bits set to true: {}", bv.iter().filter(|x| *x).count());
|
||||
///
|
||||
/// // reset bitvector to empty
|
||||
/// bv.clear();
|
||||
/// println!("{}", bv.to_str());
|
||||
/// println!("{}", bv.to_string());
|
||||
/// println!("total bits set to true: {}", bv.iter().filter(|x| *x).count());
|
||||
/// ```
|
||||
pub struct Bitv {
|
||||
@ -996,10 +996,10 @@ mod tests {
|
||||
#[test]
|
||||
fn test_to_str() {
|
||||
let zerolen = Bitv::new();
|
||||
assert_eq!(zerolen.to_str().as_slice(), "");
|
||||
assert_eq!(zerolen.to_string().as_slice(), "");
|
||||
|
||||
let eightbits = Bitv::with_capacity(8u, false);
|
||||
assert_eq!(eightbits.to_str().as_slice(), "00000000")
|
||||
assert_eq!(eightbits.to_string().as_slice(), "00000000")
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1022,7 +1022,7 @@ mod tests {
|
||||
let mut b = bitv::Bitv::with_capacity(2, false);
|
||||
b.set(0, true);
|
||||
b.set(1, false);
|
||||
assert_eq!(b.to_str().as_slice(), "10");
|
||||
assert_eq!(b.to_string().as_slice(), "10");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1333,7 +1333,7 @@ mod tests {
|
||||
fn test_from_bytes() {
|
||||
let bitv = from_bytes([0b10110110, 0b00000000, 0b11111111]);
|
||||
let str = format!("{}{}{}", "10110110", "00000000", "11111111");
|
||||
assert_eq!(bitv.to_str().as_slice(), str.as_slice());
|
||||
assert_eq!(bitv.to_string().as_slice(), str.as_slice());
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1352,7 +1352,7 @@ mod tests {
|
||||
fn test_from_bools() {
|
||||
let bools = vec![true, false, true, true];
|
||||
let bitv: Bitv = bools.iter().map(|n| *n).collect();
|
||||
assert_eq!(bitv.to_str().as_slice(), "1011");
|
||||
assert_eq!(bitv.to_string().as_slice(), "1011");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1787,7 +1787,7 @@ mod tests {
|
||||
s.insert(10);
|
||||
s.insert(50);
|
||||
s.insert(2);
|
||||
assert_eq!("{1, 2, 10, 50}".to_string(), s.to_str());
|
||||
assert_eq!("{1, 2, 10, 50}".to_string(), s.to_string());
|
||||
}
|
||||
|
||||
fn rng() -> rand::IsaacRng {
|
||||
|
@ -787,7 +787,6 @@ mod test_btree {
|
||||
fn insert_test_one() {
|
||||
let b = BTree::new(1i, "abc".to_string(), 2);
|
||||
let is_insert = b.insert(2i, "xyz".to_string());
|
||||
//println!("{}", is_insert.clone().to_str());
|
||||
assert!(is_insert.root.is_leaf());
|
||||
}
|
||||
|
||||
@ -798,7 +797,7 @@ mod test_btree {
|
||||
let leaf_elt_3 = LeafElt::new(3i, "ccc".to_string());
|
||||
let n = Node::new_leaf(vec!(leaf_elt_1, leaf_elt_2, leaf_elt_3));
|
||||
let b = BTree::new_with_node_len(n, 3, 2);
|
||||
//println!("{}", b.clone().insert(4, "ddd".to_string()).to_str());
|
||||
//println!("{}", b.clone().insert(4, "ddd".to_string()).to_string());
|
||||
assert!(b.insert(4, "ddd".to_string()).root.is_leaf());
|
||||
}
|
||||
|
||||
@ -810,7 +809,7 @@ mod test_btree {
|
||||
let leaf_elt_4 = LeafElt::new(4i, "ddd".to_string());
|
||||
let n = Node::new_leaf(vec!(leaf_elt_1, leaf_elt_2, leaf_elt_3, leaf_elt_4));
|
||||
let b = BTree::new_with_node_len(n, 3, 2);
|
||||
//println!("{}", b.clone().insert(5, "eee".to_string()).to_str());
|
||||
//println!("{}", b.clone().insert(5, "eee".to_string()).to_string());
|
||||
assert!(!b.insert(5, "eee".to_string()).root.is_leaf());
|
||||
}
|
||||
|
||||
@ -827,7 +826,7 @@ mod test_btree {
|
||||
b = b.clone().insert(7, "ggg".to_string());
|
||||
b = b.clone().insert(8, "hhh".to_string());
|
||||
b = b.clone().insert(0, "omg".to_string());
|
||||
//println!("{}", b.clone().to_str());
|
||||
//println!("{}", b.clone().to_string());
|
||||
assert!(!b.root.is_leaf());
|
||||
}
|
||||
|
||||
@ -905,11 +904,11 @@ mod test_btree {
|
||||
assert!(&b2.cmp(&b) == &Greater)
|
||||
}
|
||||
|
||||
//Tests the BTree's to_str() method.
|
||||
//Tests the BTree's to_string() method.
|
||||
#[test]
|
||||
fn btree_tostr_test() {
|
||||
let b = BTree::new(1i, "abc".to_string(), 2);
|
||||
assert_eq!(b.to_str(), "Key: 1, value: abc;".to_string())
|
||||
assert_eq!(b.to_string(), "Key: 1, value: abc;".to_string())
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1041,12 +1041,12 @@ mod tests {
|
||||
#[test]
|
||||
fn test_show() {
|
||||
let list: DList<int> = range(0i, 10).collect();
|
||||
assert!(list.to_str().as_slice() == "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]");
|
||||
assert!(list.to_string().as_slice() == "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]");
|
||||
|
||||
let list: DList<&str> = vec!["just", "one", "test", "more"].iter()
|
||||
.map(|&s| s)
|
||||
.collect();
|
||||
assert!(list.to_str().as_slice() == "[just, one, test, more]");
|
||||
assert!(list.to_string().as_slice() == "[just, one, test, more]");
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -491,7 +491,7 @@ mod test_map {
|
||||
map.insert(1, 2i);
|
||||
map.insert(3, 4i);
|
||||
|
||||
let map_str = map.to_str();
|
||||
let map_str = map.to_string();
|
||||
let map_str = map_str.as_slice();
|
||||
assert!(map_str == "{1: 2, 3: 4}" || map_str == "{3: 4, 1: 2}");
|
||||
assert_eq!(format!("{}", empty), "{}".to_string());
|
||||
|
@ -657,7 +657,7 @@ impl<'a> StrAllocating for MaybeOwned<'a> {
|
||||
#[inline]
|
||||
fn into_string(self) -> String {
|
||||
match self {
|
||||
Slice(s) => s.to_string(),
|
||||
Slice(s) => String::from_str(s),
|
||||
Owned(s) => s
|
||||
}
|
||||
}
|
||||
@ -673,7 +673,7 @@ impl<'a> Clone for MaybeOwned<'a> {
|
||||
fn clone(&self) -> MaybeOwned<'a> {
|
||||
match *self {
|
||||
Slice(s) => Slice(s),
|
||||
Owned(ref s) => Owned(s.to_string())
|
||||
Owned(ref s) => Owned(String::from_str(s.as_slice()))
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -762,7 +762,7 @@ pub mod raw {
|
||||
let a = vec![65u8, 65u8, 65u8, 65u8, 65u8, 65u8, 65u8, 0u8];
|
||||
let b = a.as_ptr();
|
||||
let c = from_buf_len(b, 3u);
|
||||
assert_eq!(c, "AAA".to_string());
|
||||
assert_eq!(c, String::from_str("AAA"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -776,12 +776,6 @@ pub trait StrAllocating: Str {
|
||||
/// Convert `self` into a `String`, not making a copy if possible.
|
||||
fn into_string(self) -> String;
|
||||
|
||||
/// Convert `self` into a `String`.
|
||||
#[inline]
|
||||
fn to_string(&self) -> String {
|
||||
String::from_str(self.as_slice())
|
||||
}
|
||||
|
||||
#[allow(missing_doc)]
|
||||
#[deprecated = "replaced by .into_string()"]
|
||||
fn into_owned(self) -> String {
|
||||
@ -933,7 +927,7 @@ pub trait StrAllocating: Str {
|
||||
impl<'a> StrAllocating for &'a str {
|
||||
#[inline]
|
||||
fn into_string(self) -> String {
|
||||
self.to_string()
|
||||
String::from_str(self)
|
||||
}
|
||||
}
|
||||
|
||||
@ -963,11 +957,19 @@ impl OwnedStr for String {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::prelude::*;
|
||||
use std::iter::AdditiveIterator;
|
||||
use std::default::Default;
|
||||
use std::char::Char;
|
||||
use std::clone::Clone;
|
||||
use std::cmp::{Equal, Greater, Less, Ord, Eq, PartialOrd, PartialEq, Equiv};
|
||||
use std::result::{Ok, Err};
|
||||
use std::option::{Some, None};
|
||||
use std::ptr::RawPtr;
|
||||
use std::iter::{Iterator, DoubleEndedIterator};
|
||||
use Collection;
|
||||
|
||||
use str::*;
|
||||
use super::*;
|
||||
use std::slice::{Vector, ImmutableVector};
|
||||
use string::String;
|
||||
use vec::Vec;
|
||||
|
||||
@ -1028,17 +1030,17 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_collect() {
|
||||
let empty = "".to_string();
|
||||
let empty = String::from_str("");
|
||||
let s: String = empty.as_slice().chars().collect();
|
||||
assert_eq!(empty, s);
|
||||
let data = "ประเทศไทย中".to_string();
|
||||
let data = String::from_str("ประเทศไทย中");
|
||||
let s: String = data.as_slice().chars().collect();
|
||||
assert_eq!(data, s);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_into_bytes() {
|
||||
let data = "asdf".to_string();
|
||||
let data = String::from_str("asdf");
|
||||
let buf = data.into_bytes();
|
||||
assert_eq!(b"asdf", buf.as_slice());
|
||||
}
|
||||
@ -1055,7 +1057,7 @@ mod tests {
|
||||
assert!(data.slice(2u, 4u).find_str("ab").is_none());
|
||||
|
||||
let string = "ประเทศไทย中华Việt Nam";
|
||||
let mut data = string.to_string();
|
||||
let mut data = String::from_str(string);
|
||||
data.push_str(string);
|
||||
assert!(data.as_slice().find_str("ไท华").is_none());
|
||||
assert_eq!(data.as_slice().slice(0u, 43u).find_str(""), Some(0u));
|
||||
@ -1092,11 +1094,13 @@ mod tests {
|
||||
fn t(v: &[String], s: &str) {
|
||||
assert_eq!(v.concat().as_slice(), s);
|
||||
}
|
||||
t(["you".to_string(), "know".to_string(), "I'm".to_string(),
|
||||
"no".to_string(), "good".to_string()], "youknowI'mnogood");
|
||||
t([String::from_str("you"), String::from_str("know"),
|
||||
String::from_str("I'm"),
|
||||
String::from_str("no"), String::from_str("good")],
|
||||
"youknowI'mnogood");
|
||||
let v: &[String] = [];
|
||||
t(v, "");
|
||||
t(["hi".to_string()], "hi");
|
||||
t([String::from_str("hi")], "hi");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1104,12 +1108,13 @@ mod tests {
|
||||
fn t(v: &[String], sep: &str, s: &str) {
|
||||
assert_eq!(v.connect(sep).as_slice(), s);
|
||||
}
|
||||
t(["you".to_string(), "know".to_string(), "I'm".to_string(),
|
||||
"no".to_string(), "good".to_string()],
|
||||
t([String::from_str("you"), String::from_str("know"),
|
||||
String::from_str("I'm"),
|
||||
String::from_str("no"), String::from_str("good")],
|
||||
" ", "you know I'm no good");
|
||||
let v: &[String] = [];
|
||||
t(v, " ", "");
|
||||
t(["hi".to_string()], " ", "hi");
|
||||
t([String::from_str("hi")], " ", "hi");
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1136,11 +1141,11 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_repeat() {
|
||||
assert_eq!("x".repeat(4), "xxxx".to_string());
|
||||
assert_eq!("hi".repeat(4), "hihihihi".to_string());
|
||||
assert_eq!("ไท华".repeat(3), "ไท华ไท华ไท华".to_string());
|
||||
assert_eq!("".repeat(4), "".to_string());
|
||||
assert_eq!("hi".repeat(0), "".to_string());
|
||||
assert_eq!("x".repeat(4), String::from_str("xxxx"));
|
||||
assert_eq!("hi".repeat(4), String::from_str("hihihihi"));
|
||||
assert_eq!("ไท华".repeat(3), String::from_str("ไท华ไท华ไท华"));
|
||||
assert_eq!("".repeat(4), String::from_str(""));
|
||||
assert_eq!("hi".repeat(0), String::from_str(""));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1168,9 +1173,9 @@ mod tests {
|
||||
}
|
||||
let letters = a_million_letter_a();
|
||||
assert!(half_a_million_letter_a() ==
|
||||
unsafe {raw::slice_bytes(letters.as_slice(),
|
||||
unsafe {String::from_str(raw::slice_bytes(letters.as_slice(),
|
||||
0u,
|
||||
500000)}.to_string());
|
||||
500000))});
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1204,13 +1209,13 @@ mod tests {
|
||||
#[test]
|
||||
fn test_replace() {
|
||||
let a = "a";
|
||||
assert_eq!("".replace(a, "b"), "".to_string());
|
||||
assert_eq!("a".replace(a, "b"), "b".to_string());
|
||||
assert_eq!("ab".replace(a, "b"), "bb".to_string());
|
||||
assert_eq!("".replace(a, "b"), String::from_str(""));
|
||||
assert_eq!("a".replace(a, "b"), String::from_str("b"));
|
||||
assert_eq!("ab".replace(a, "b"), String::from_str("bb"));
|
||||
let test = "test";
|
||||
assert!(" test test ".replace(test, "toast") ==
|
||||
" toast toast ".to_string());
|
||||
assert_eq!(" test test ".replace(test, ""), " ".to_string());
|
||||
String::from_str(" toast toast "));
|
||||
assert_eq!(" test test ".replace(test, ""), String::from_str(" "));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1285,7 +1290,7 @@ mod tests {
|
||||
}
|
||||
let letters = a_million_letter_x();
|
||||
assert!(half_a_million_letter_x() ==
|
||||
letters.as_slice().slice(0u, 3u * 500000u).to_string());
|
||||
String::from_str(letters.as_slice().slice(0u, 3u * 500000u)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1513,7 +1518,7 @@ mod tests {
|
||||
let a = vec![65, 65, 65, 65, 65, 65, 65, 0];
|
||||
let b = a.as_ptr();
|
||||
let c = raw::from_c_str(b);
|
||||
assert_eq!(c, "AAAAAAA".to_string());
|
||||
assert_eq!(c, String::from_str("AAAAAAA"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1535,7 +1540,7 @@ mod tests {
|
||||
fn test_as_bytes_fail() {
|
||||
// Don't double free. (I'm not sure if this exercises the
|
||||
// original problem code path anymore.)
|
||||
let s = "".to_string();
|
||||
let s = String::from_str("");
|
||||
let _bytes = s.as_bytes();
|
||||
fail!();
|
||||
}
|
||||
@ -1578,10 +1583,10 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn vec_str_conversions() {
|
||||
let s1: String = "All mimsy were the borogoves".to_string();
|
||||
let s1: String = String::from_str("All mimsy were the borogoves");
|
||||
|
||||
let v: Vec<u8> = Vec::from_slice(s1.as_bytes());
|
||||
let s2: String = from_utf8(v.as_slice()).unwrap().to_string();
|
||||
let s2: String = String::from_str(from_utf8(v.as_slice()).unwrap());
|
||||
let mut i: uint = 0u;
|
||||
let n1: uint = s1.len();
|
||||
let n2: uint = v.len();
|
||||
@ -1624,13 +1629,13 @@ mod tests {
|
||||
#[test]
|
||||
fn test_utf16() {
|
||||
let pairs =
|
||||
[("𐍅𐌿𐌻𐍆𐌹𐌻𐌰\n".to_string(),
|
||||
[(String::from_str("𐍅𐌿𐌻𐍆𐌹𐌻𐌰\n"),
|
||||
vec![0xd800_u16, 0xdf45_u16, 0xd800_u16, 0xdf3f_u16,
|
||||
0xd800_u16, 0xdf3b_u16, 0xd800_u16, 0xdf46_u16,
|
||||
0xd800_u16, 0xdf39_u16, 0xd800_u16, 0xdf3b_u16,
|
||||
0xd800_u16, 0xdf30_u16, 0x000a_u16]),
|
||||
|
||||
("𐐒𐑉𐐮𐑀𐐲𐑋 𐐏𐐲𐑍\n".to_string(),
|
||||
(String::from_str("𐐒𐑉𐐮𐑀𐐲𐑋 𐐏𐐲𐑍\n"),
|
||||
vec![0xd801_u16, 0xdc12_u16, 0xd801_u16,
|
||||
0xdc49_u16, 0xd801_u16, 0xdc2e_u16, 0xd801_u16,
|
||||
0xdc40_u16, 0xd801_u16, 0xdc32_u16, 0xd801_u16,
|
||||
@ -1638,7 +1643,7 @@ mod tests {
|
||||
0xd801_u16, 0xdc32_u16, 0xd801_u16, 0xdc4d_u16,
|
||||
0x000a_u16]),
|
||||
|
||||
("𐌀𐌖𐌋𐌄𐌑𐌉·𐌌𐌄𐌕𐌄𐌋𐌉𐌑\n".to_string(),
|
||||
(String::from_str("𐌀𐌖𐌋𐌄𐌑𐌉·𐌌𐌄𐌕𐌄𐌋𐌉𐌑\n"),
|
||||
vec![0xd800_u16, 0xdf00_u16, 0xd800_u16, 0xdf16_u16,
|
||||
0xd800_u16, 0xdf0b_u16, 0xd800_u16, 0xdf04_u16,
|
||||
0xd800_u16, 0xdf11_u16, 0xd800_u16, 0xdf09_u16,
|
||||
@ -1647,7 +1652,7 @@ mod tests {
|
||||
0xdf04_u16, 0xd800_u16, 0xdf0b_u16, 0xd800_u16,
|
||||
0xdf09_u16, 0xd800_u16, 0xdf11_u16, 0x000a_u16 ]),
|
||||
|
||||
("𐒋𐒘𐒈𐒑𐒛𐒒 𐒕𐒓 𐒈𐒚𐒍 𐒏𐒜𐒒𐒖𐒆 𐒕𐒆\n".to_string(),
|
||||
(String::from_str("𐒋𐒘𐒈𐒑𐒛𐒒 𐒕𐒓 𐒈𐒚𐒍 𐒏𐒜𐒒𐒖𐒆 𐒕𐒆\n"),
|
||||
vec![0xd801_u16, 0xdc8b_u16, 0xd801_u16, 0xdc98_u16,
|
||||
0xd801_u16, 0xdc88_u16, 0xd801_u16, 0xdc91_u16,
|
||||
0xd801_u16, 0xdc9b_u16, 0xd801_u16, 0xdc92_u16,
|
||||
@ -1660,7 +1665,7 @@ mod tests {
|
||||
0xd801_u16, 0xdc95_u16, 0xd801_u16, 0xdc86_u16,
|
||||
0x000a_u16 ]),
|
||||
// Issue #12318, even-numbered non-BMP planes
|
||||
("\U00020000".to_string(),
|
||||
(String::from_str("\U00020000"),
|
||||
vec![0xD840, 0xDC00])];
|
||||
|
||||
for p in pairs.iter() {
|
||||
@ -1698,16 +1703,16 @@ mod tests {
|
||||
fn test_utf16_lossy() {
|
||||
// completely positive cases tested above.
|
||||
// lead + eof
|
||||
assert_eq!(from_utf16_lossy([0xD800]), "\uFFFD".to_string());
|
||||
assert_eq!(from_utf16_lossy([0xD800]), String::from_str("\uFFFD"));
|
||||
// lead + lead
|
||||
assert_eq!(from_utf16_lossy([0xD800, 0xD800]), "\uFFFD\uFFFD".to_string());
|
||||
assert_eq!(from_utf16_lossy([0xD800, 0xD800]), String::from_str("\uFFFD\uFFFD"));
|
||||
|
||||
// isolated trail
|
||||
assert_eq!(from_utf16_lossy([0x0061, 0xDC00]), "a\uFFFD".to_string());
|
||||
assert_eq!(from_utf16_lossy([0x0061, 0xDC00]), String::from_str("a\uFFFD"));
|
||||
|
||||
// general
|
||||
assert_eq!(from_utf16_lossy([0xD800, 0xd801, 0xdc8b, 0xD800]),
|
||||
"\uFFFD𐒋\uFFFD".to_string());
|
||||
String::from_str("\uFFFD𐒋\uFFFD"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -1752,27 +1757,29 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_escape_unicode() {
|
||||
assert_eq!("abc".escape_unicode(), "\\x61\\x62\\x63".to_string());
|
||||
assert_eq!("a c".escape_unicode(), "\\x61\\x20\\x63".to_string());
|
||||
assert_eq!("\r\n\t".escape_unicode(), "\\x0d\\x0a\\x09".to_string());
|
||||
assert_eq!("'\"\\".escape_unicode(), "\\x27\\x22\\x5c".to_string());
|
||||
assert_eq!("\x00\x01\xfe\xff".escape_unicode(), "\\x00\\x01\\xfe\\xff".to_string());
|
||||
assert_eq!("\u0100\uffff".escape_unicode(), "\\u0100\\uffff".to_string());
|
||||
assert_eq!("\U00010000\U0010ffff".escape_unicode(), "\\U00010000\\U0010ffff".to_string());
|
||||
assert_eq!("ab\ufb00".escape_unicode(), "\\x61\\x62\\ufb00".to_string());
|
||||
assert_eq!("\U0001d4ea\r".escape_unicode(), "\\U0001d4ea\\x0d".to_string());
|
||||
assert_eq!("abc".escape_unicode(), String::from_str("\\x61\\x62\\x63"));
|
||||
assert_eq!("a c".escape_unicode(), String::from_str("\\x61\\x20\\x63"));
|
||||
assert_eq!("\r\n\t".escape_unicode(), String::from_str("\\x0d\\x0a\\x09"));
|
||||
assert_eq!("'\"\\".escape_unicode(), String::from_str("\\x27\\x22\\x5c"));
|
||||
assert_eq!("\x00\x01\xfe\xff".escape_unicode(), String::from_str("\\x00\\x01\\xfe\\xff"));
|
||||
assert_eq!("\u0100\uffff".escape_unicode(), String::from_str("\\u0100\\uffff"));
|
||||
assert_eq!("\U00010000\U0010ffff".escape_unicode(),
|
||||
String::from_str("\\U00010000\\U0010ffff"));
|
||||
assert_eq!("ab\ufb00".escape_unicode(), String::from_str("\\x61\\x62\\ufb00"));
|
||||
assert_eq!("\U0001d4ea\r".escape_unicode(), String::from_str("\\U0001d4ea\\x0d"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_escape_default() {
|
||||
assert_eq!("abc".escape_default(), "abc".to_string());
|
||||
assert_eq!("a c".escape_default(), "a c".to_string());
|
||||
assert_eq!("\r\n\t".escape_default(), "\\r\\n\\t".to_string());
|
||||
assert_eq!("'\"\\".escape_default(), "\\'\\\"\\\\".to_string());
|
||||
assert_eq!("\u0100\uffff".escape_default(), "\\u0100\\uffff".to_string());
|
||||
assert_eq!("\U00010000\U0010ffff".escape_default(), "\\U00010000\\U0010ffff".to_string());
|
||||
assert_eq!("ab\ufb00".escape_default(), "ab\\ufb00".to_string());
|
||||
assert_eq!("\U0001d4ea\r".escape_default(), "\\U0001d4ea\\r".to_string());
|
||||
assert_eq!("abc".escape_default(), String::from_str("abc"));
|
||||
assert_eq!("a c".escape_default(), String::from_str("a c"));
|
||||
assert_eq!("\r\n\t".escape_default(), String::from_str("\\r\\n\\t"));
|
||||
assert_eq!("'\"\\".escape_default(), String::from_str("\\'\\\"\\\\"));
|
||||
assert_eq!("\u0100\uffff".escape_default(), String::from_str("\\u0100\\uffff"));
|
||||
assert_eq!("\U00010000\U0010ffff".escape_default(),
|
||||
String::from_str("\\U00010000\\U0010ffff"));
|
||||
assert_eq!("ab\ufb00".escape_default(), String::from_str("ab\\ufb00"));
|
||||
assert_eq!("\U0001d4ea\r".escape_default(), String::from_str("\\U0001d4ea\\r"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -2013,30 +2020,39 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_nfd_chars() {
|
||||
assert_eq!("abc".nfd_chars().collect::<String>(), "abc".to_string());
|
||||
assert_eq!("\u1e0b\u01c4".nfd_chars().collect::<String>(), "d\u0307\u01c4".to_string());
|
||||
assert_eq!("\u2026".nfd_chars().collect::<String>(), "\u2026".to_string());
|
||||
assert_eq!("\u2126".nfd_chars().collect::<String>(), "\u03a9".to_string());
|
||||
assert_eq!("\u1e0b\u0323".nfd_chars().collect::<String>(), "d\u0323\u0307".to_string());
|
||||
assert_eq!("\u1e0d\u0307".nfd_chars().collect::<String>(), "d\u0323\u0307".to_string());
|
||||
assert_eq!("a\u0301".nfd_chars().collect::<String>(), "a\u0301".to_string());
|
||||
assert_eq!("\u0301a".nfd_chars().collect::<String>(), "\u0301a".to_string());
|
||||
assert_eq!("\ud4db".nfd_chars().collect::<String>(), "\u1111\u1171\u11b6".to_string());
|
||||
assert_eq!("\uac1c".nfd_chars().collect::<String>(), "\u1100\u1162".to_string());
|
||||
assert_eq!("abc".nfd_chars().collect::<String>(), String::from_str("abc"));
|
||||
assert_eq!("\u1e0b\u01c4".nfd_chars().collect::<String>(),
|
||||
String::from_str("d\u0307\u01c4"));
|
||||
assert_eq!("\u2026".nfd_chars().collect::<String>(), String::from_str("\u2026"));
|
||||
assert_eq!("\u2126".nfd_chars().collect::<String>(), String::from_str("\u03a9"));
|
||||
assert_eq!("\u1e0b\u0323".nfd_chars().collect::<String>(),
|
||||
String::from_str("d\u0323\u0307"));
|
||||
assert_eq!("\u1e0d\u0307".nfd_chars().collect::<String>(),
|
||||
String::from_str("d\u0323\u0307"));
|
||||
assert_eq!("a\u0301".nfd_chars().collect::<String>(), String::from_str("a\u0301"));
|
||||
assert_eq!("\u0301a".nfd_chars().collect::<String>(), String::from_str("\u0301a"));
|
||||
assert_eq!("\ud4db".nfd_chars().collect::<String>(),
|
||||
String::from_str("\u1111\u1171\u11b6"));
|
||||
assert_eq!("\uac1c".nfd_chars().collect::<String>(), String::from_str("\u1100\u1162"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_nfkd_chars() {
|
||||
assert_eq!("abc".nfkd_chars().collect::<String>(), "abc".to_string());
|
||||
assert_eq!("\u1e0b\u01c4".nfkd_chars().collect::<String>(), "d\u0307DZ\u030c".to_string());
|
||||
assert_eq!("\u2026".nfkd_chars().collect::<String>(), "...".to_string());
|
||||
assert_eq!("\u2126".nfkd_chars().collect::<String>(), "\u03a9".to_string());
|
||||
assert_eq!("\u1e0b\u0323".nfkd_chars().collect::<String>(), "d\u0323\u0307".to_string());
|
||||
assert_eq!("\u1e0d\u0307".nfkd_chars().collect::<String>(), "d\u0323\u0307".to_string());
|
||||
assert_eq!("a\u0301".nfkd_chars().collect::<String>(), "a\u0301".to_string());
|
||||
assert_eq!("\u0301a".nfkd_chars().collect::<String>(), "\u0301a".to_string());
|
||||
assert_eq!("\ud4db".nfkd_chars().collect::<String>(), "\u1111\u1171\u11b6".to_string());
|
||||
assert_eq!("\uac1c".nfkd_chars().collect::<String>(), "\u1100\u1162".to_string());
|
||||
assert_eq!("abc".nfkd_chars().collect::<String>(), String::from_str("abc"));
|
||||
assert_eq!("\u1e0b\u01c4".nfkd_chars().collect::<String>(),
|
||||
String::from_str("d\u0307DZ\u030c"));
|
||||
assert_eq!("\u2026".nfkd_chars().collect::<String>(), String::from_str("..."));
|
||||
assert_eq!("\u2126".nfkd_chars().collect::<String>(), String::from_str("\u03a9"));
|
||||
assert_eq!("\u1e0b\u0323".nfkd_chars().collect::<String>(),
|
||||
String::from_str("d\u0323\u0307"));
|
||||
assert_eq!("\u1e0d\u0307".nfkd_chars().collect::<String>(),
|
||||
String::from_str("d\u0323\u0307"));
|
||||
assert_eq!("a\u0301".nfkd_chars().collect::<String>(), String::from_str("a\u0301"));
|
||||
assert_eq!("\u0301a".nfkd_chars().collect::<String>(),
|
||||
String::from_str("\u0301a"));
|
||||
assert_eq!("\ud4db".nfkd_chars().collect::<String>(),
|
||||
String::from_str("\u1111\u1171\u11b6"));
|
||||
assert_eq!("\uac1c".nfkd_chars().collect::<String>(), String::from_str("\u1100\u1162"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -2090,10 +2106,10 @@ mod tests {
|
||||
v.iter().map(|x| x.len()).sum()
|
||||
}
|
||||
|
||||
let s = "01234".to_string();
|
||||
let s = String::from_str("01234");
|
||||
assert_eq!(5, sum_len(["012", "", "34"]));
|
||||
assert_eq!(5, sum_len(["01".to_string(), "2".to_string(),
|
||||
"34".to_string(), "".to_string()]));
|
||||
assert_eq!(5, sum_len([String::from_str("01"), String::from_str("2"),
|
||||
String::from_str("34"), String::from_str("")]));
|
||||
assert_eq!(5, sum_len([s.as_slice()]));
|
||||
}
|
||||
|
||||
@ -2112,10 +2128,10 @@ mod tests {
|
||||
#[test]
|
||||
fn test_str_from_utf8_owned() {
|
||||
let xs = Vec::from_slice(b"hello");
|
||||
assert_eq!(from_utf8_owned(xs), Ok("hello".to_string()));
|
||||
assert_eq!(from_utf8_owned(xs), Ok(String::from_str("hello")));
|
||||
|
||||
let xs = Vec::from_slice("ศไทย中华Việt Nam".as_bytes());
|
||||
assert_eq!(from_utf8_owned(xs), Ok("ศไทย中华Việt Nam".to_string()));
|
||||
assert_eq!(from_utf8_owned(xs), Ok(String::from_str("ศไทย中华Việt Nam")));
|
||||
|
||||
let xs = Vec::from_slice(b"hello\xFF");
|
||||
assert_eq!(from_utf8_owned(xs),
|
||||
@ -2131,34 +2147,30 @@ mod tests {
|
||||
assert_eq!(from_utf8_lossy(xs), Slice("ศไทย中华Việt Nam"));
|
||||
|
||||
let xs = b"Hello\xC2 There\xFF Goodbye";
|
||||
assert_eq!(from_utf8_lossy(xs), Owned("Hello\uFFFD There\uFFFD Goodbye".to_string()));
|
||||
assert_eq!(from_utf8_lossy(xs), Owned(String::from_str("Hello\uFFFD There\uFFFD Goodbye")));
|
||||
|
||||
let xs = b"Hello\xC0\x80 There\xE6\x83 Goodbye";
|
||||
assert_eq!(from_utf8_lossy(xs), Owned("Hello\uFFFD\uFFFD There\uFFFD Goodbye".to_string()));
|
||||
assert_eq!(from_utf8_lossy(xs),
|
||||
Owned(String::from_str("Hello\uFFFD\uFFFD There\uFFFD Goodbye")));
|
||||
|
||||
let xs = b"\xF5foo\xF5\x80bar";
|
||||
assert_eq!(from_utf8_lossy(xs), Owned("\uFFFDfoo\uFFFD\uFFFDbar".to_string()));
|
||||
assert_eq!(from_utf8_lossy(xs), Owned(String::from_str("\uFFFDfoo\uFFFD\uFFFDbar")));
|
||||
|
||||
let xs = b"\xF1foo\xF1\x80bar\xF1\x80\x80baz";
|
||||
assert_eq!(from_utf8_lossy(xs), Owned("\uFFFDfoo\uFFFDbar\uFFFDbaz".to_string()));
|
||||
assert_eq!(from_utf8_lossy(xs), Owned(String::from_str("\uFFFDfoo\uFFFDbar\uFFFDbaz")));
|
||||
|
||||
let xs = b"\xF4foo\xF4\x80bar\xF4\xBFbaz";
|
||||
assert_eq!(from_utf8_lossy(xs), Owned("\uFFFDfoo\uFFFDbar\uFFFD\uFFFDbaz".to_string()));
|
||||
assert_eq!(from_utf8_lossy(xs),
|
||||
Owned(String::from_str("\uFFFDfoo\uFFFDbar\uFFFD\uFFFDbaz")));
|
||||
|
||||
let xs = b"\xF0\x80\x80\x80foo\xF0\x90\x80\x80bar";
|
||||
assert_eq!(from_utf8_lossy(xs), Owned("\uFFFD\uFFFD\uFFFD\uFFFD\
|
||||
foo\U00010000bar".to_string()));
|
||||
assert_eq!(from_utf8_lossy(xs), Owned(String::from_str("\uFFFD\uFFFD\uFFFD\uFFFD\
|
||||
foo\U00010000bar")));
|
||||
|
||||
// surrogates
|
||||
let xs = b"\xED\xA0\x80foo\xED\xBF\xBFbar";
|
||||
assert_eq!(from_utf8_lossy(xs), Owned("\uFFFD\uFFFD\uFFFDfoo\
|
||||
\uFFFD\uFFFD\uFFFDbar".to_string()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_from_str() {
|
||||
let owned: Option<::std::string::String> = from_str("string");
|
||||
assert_eq!(owned.as_ref().map(|s| s.as_slice()), Some("string"));
|
||||
assert_eq!(from_utf8_lossy(xs), Owned(String::from_str("\uFFFD\uFFFD\uFFFDfoo\
|
||||
\uFFFD\uFFFD\uFFFDbar")));
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -2166,18 +2178,18 @@ mod tests {
|
||||
let s = Slice("abcde");
|
||||
assert_eq!(s.len(), 5);
|
||||
assert_eq!(s.as_slice(), "abcde");
|
||||
assert_eq!(s.to_str().as_slice(), "abcde");
|
||||
assert_eq!(String::from_str(s.as_slice()).as_slice(), "abcde");
|
||||
assert_eq!(format!("{}", s).as_slice(), "abcde");
|
||||
assert!(s.lt(&Owned("bcdef".to_string())));
|
||||
assert!(s.lt(&Owned(String::from_str("bcdef"))));
|
||||
assert_eq!(Slice(""), Default::default());
|
||||
|
||||
let o = Owned("abcde".to_string());
|
||||
let o = Owned(String::from_str("abcde"));
|
||||
assert_eq!(o.len(), 5);
|
||||
assert_eq!(o.as_slice(), "abcde");
|
||||
assert_eq!(o.to_str().as_slice(), "abcde");
|
||||
assert_eq!(String::from_str(o.as_slice()).as_slice(), "abcde");
|
||||
assert_eq!(format!("{}", o).as_slice(), "abcde");
|
||||
assert!(o.lt(&Slice("bcdef")));
|
||||
assert_eq!(Owned("".to_string()), Default::default());
|
||||
assert_eq!(Owned(String::from_str("")), Default::default());
|
||||
|
||||
assert!(s.cmp(&o) == Equal);
|
||||
assert!(s.equiv(&o));
|
||||
@ -2192,31 +2204,33 @@ mod tests {
|
||||
assert!(s.is_slice());
|
||||
assert!(!s.is_owned());
|
||||
|
||||
let o = Owned("abcde".to_string());
|
||||
let o = Owned(String::from_str("abcde"));
|
||||
assert!(!o.is_slice());
|
||||
assert!(o.is_owned());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_maybe_owned_clone() {
|
||||
assert_eq!(Owned("abcde".to_string()), Slice("abcde").clone());
|
||||
assert_eq!(Owned("abcde".to_string()), Owned("abcde".to_string()).clone());
|
||||
assert_eq!(Owned(String::from_str("abcde")), Slice("abcde").clone());
|
||||
assert_eq!(Owned(String::from_str("abcde")), Owned(String::from_str("abcde")).clone());
|
||||
assert_eq!(Slice("abcde"), Slice("abcde").clone());
|
||||
assert_eq!(Slice("abcde"), Owned("abcde".to_string()).clone());
|
||||
assert_eq!(Slice("abcde"), Owned(String::from_str("abcde")).clone());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_maybe_owned_into_string() {
|
||||
assert_eq!(Slice("abcde").into_string(), "abcde".to_string());
|
||||
assert_eq!(Owned("abcde".to_string()).into_string(), "abcde".to_string());
|
||||
assert_eq!(Slice("abcde").into_string(), String::from_str("abcde"));
|
||||
assert_eq!(Owned(String::from_str("abcde")).into_string(),
|
||||
String::from_str("abcde"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_into_maybe_owned() {
|
||||
assert_eq!("abcde".into_maybe_owned(), Slice("abcde"));
|
||||
assert_eq!(("abcde".to_string()).into_maybe_owned(), Slice("abcde"));
|
||||
assert_eq!("abcde".into_maybe_owned(), Owned("abcde".to_string()));
|
||||
assert_eq!(("abcde".to_string()).into_maybe_owned(), Owned("abcde".to_string()));
|
||||
assert_eq!((String::from_str("abcde")).into_maybe_owned(), Slice("abcde"));
|
||||
assert_eq!("abcde".into_maybe_owned(), Owned(String::from_str("abcde")));
|
||||
assert_eq!((String::from_str("abcde")).into_maybe_owned(),
|
||||
Owned(String::from_str("abcde")));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2224,7 +2238,10 @@ mod tests {
|
||||
mod bench {
|
||||
use test::Bencher;
|
||||
use super::*;
|
||||
use std::prelude::*;
|
||||
use vec::Vec;
|
||||
use std::iter::{Iterator, DoubleEndedIterator};
|
||||
use std::collections::Collection;
|
||||
use std::slice::Vector;
|
||||
|
||||
#[bench]
|
||||
fn char_iterator(b: &mut Bencher) {
|
||||
|
@ -354,7 +354,7 @@ impl<'a, S: Str> Equiv<S> for String {
|
||||
|
||||
impl<S: Str> Add<S, String> for String {
|
||||
fn add(&self, other: &S) -> String {
|
||||
let mut s = self.to_string();
|
||||
let mut s = String::from_str(self.as_slice());
|
||||
s.push_str(other.as_slice());
|
||||
return s;
|
||||
}
|
||||
@ -369,6 +369,12 @@ mod tests {
|
||||
use str::{Str, StrSlice};
|
||||
use super::String;
|
||||
|
||||
#[test]
|
||||
fn test_from_str() {
|
||||
let owned: Option<::std::string::String> = from_str("string");
|
||||
assert_eq!(owned.as_ref().map(|s| s.as_slice()), Some("string"));
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_with_capacity(b: &mut Bencher) {
|
||||
b.iter(|| {
|
||||
|
@ -70,7 +70,7 @@ static DIGIT_E_RADIX: uint = ('e' as uint) - ('a' as uint) + 11u;
|
||||
/**
|
||||
* Converts a number to its string representation as a byte vector.
|
||||
* This is meant to be a common base implementation for all numeric string
|
||||
* conversion functions like `to_str()` or `to_str_radix()`.
|
||||
* conversion functions like `to_string()` or `to_str_radix()`.
|
||||
*
|
||||
* # Arguments
|
||||
* - `num` - The number to convert. Accepts any number that
|
||||
|
@ -167,12 +167,6 @@ fn test_escape_unicode() {
|
||||
assert_eq!(s.as_slice(), "\\U0001d4b6");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_to_str() {
|
||||
let s = 't'.to_str();
|
||||
assert_eq!(s.as_slice(), "t");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_encode_utf8() {
|
||||
fn check(input: char, expect: &[u8]) {
|
||||
|
@ -45,7 +45,7 @@ impl<T> Poly for T {
|
||||
// If we have a specified width for formatting, then we have to make
|
||||
// this allocation of a new string
|
||||
_ => {
|
||||
let s = repr::repr_to_str(self);
|
||||
let s = repr::repr_to_string(self);
|
||||
f.pad(s.as_slice())
|
||||
}
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ int_repr!(u64, "u64")
|
||||
|
||||
macro_rules! num_repr(($ty:ident, $suffix:expr) => (impl Repr for $ty {
|
||||
fn write_repr(&self, writer: &mut io::Writer) -> io::IoResult<()> {
|
||||
let s = self.to_str();
|
||||
let s = self.to_string();
|
||||
writer.write(s.as_bytes()).and_then(|()| {
|
||||
writer.write($suffix)
|
||||
})
|
||||
@ -564,7 +564,7 @@ pub fn write_repr<T>(writer: &mut io::Writer, object: &T) -> io::IoResult<()> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn repr_to_str<T>(t: &T) -> String {
|
||||
pub fn repr_to_string<T>(t: &T) -> String {
|
||||
let mut result = io::MemWriter::new();
|
||||
write_repr(&mut result as &mut io::Writer, t).unwrap();
|
||||
String::from_utf8(result.unwrap()).unwrap()
|
||||
|
@ -59,7 +59,7 @@
|
||||
//! ];
|
||||
//! let matches = match getopts(args.tail(), opts) {
|
||||
//! Ok(m) => { m }
|
||||
//! Err(f) => { fail!(f.to_str()) }
|
||||
//! Err(f) => { fail!(f.to_string()) }
|
||||
//! };
|
||||
//! if matches.opt_present("h") {
|
||||
//! print_usage(program.as_slice(), opts);
|
||||
@ -222,9 +222,9 @@ impl Name {
|
||||
}
|
||||
}
|
||||
|
||||
fn to_str(&self) -> String {
|
||||
fn to_string(&self) -> String {
|
||||
match *self {
|
||||
Short(ch) => ch.to_str(),
|
||||
Short(ch) => ch.to_string(),
|
||||
Long(ref s) => s.to_string()
|
||||
}
|
||||
}
|
||||
@ -501,7 +501,7 @@ impl Fail_ {
|
||||
/// Convert a `Fail_` enum into an error string.
|
||||
#[deprecated="use `Show` (`{}` format specifier)"]
|
||||
pub fn to_err_msg(self) -> String {
|
||||
self.to_str()
|
||||
self.to_string()
|
||||
}
|
||||
}
|
||||
|
||||
@ -609,12 +609,12 @@ pub fn getopts(args: &[String], optgrps: &[OptGroup]) -> Result {
|
||||
name_pos += 1;
|
||||
let optid = match find_opt(opts.as_slice(), (*nm).clone()) {
|
||||
Some(id) => id,
|
||||
None => return Err(UnrecognizedOption(nm.to_str()))
|
||||
None => return Err(UnrecognizedOption(nm.to_string()))
|
||||
};
|
||||
match opts.get(optid).hasarg {
|
||||
No => {
|
||||
if !i_arg.is_none() {
|
||||
return Err(UnexpectedArgument(nm.to_str()));
|
||||
return Err(UnexpectedArgument(nm.to_string()));
|
||||
}
|
||||
vals.get_mut(optid).push(Given);
|
||||
}
|
||||
@ -635,7 +635,7 @@ pub fn getopts(args: &[String], optgrps: &[OptGroup]) -> Result {
|
||||
if !i_arg.is_none() {
|
||||
vals.get_mut(optid).push(Val(i_arg.clone().unwrap()));
|
||||
} else if i + 1 == l {
|
||||
return Err(ArgumentMissing(nm.to_str()));
|
||||
return Err(ArgumentMissing(nm.to_string()));
|
||||
} else {
|
||||
i += 1;
|
||||
vals.get_mut(optid).push(Val(args[i].clone()));
|
||||
@ -652,12 +652,12 @@ pub fn getopts(args: &[String], optgrps: &[OptGroup]) -> Result {
|
||||
let occ = opts.get(i).occur;
|
||||
if occ == Req {
|
||||
if n == 0 {
|
||||
return Err(OptionMissing(opts.get(i).name.to_str()));
|
||||
return Err(OptionMissing(opts.get(i).name.to_string()));
|
||||
}
|
||||
}
|
||||
if occ != Multi {
|
||||
if n > 1 {
|
||||
return Err(OptionDuplicated(opts.get(i).name.to_str()));
|
||||
return Err(OptionDuplicated(opts.get(i).name.to_string()));
|
||||
}
|
||||
}
|
||||
i += 1;
|
||||
|
@ -703,11 +703,11 @@ mod test {
|
||||
for &p in pats.iter() {
|
||||
let pat = Pattern::new(p);
|
||||
for c in "abcdefghijklmnopqrstuvwxyz".chars() {
|
||||
assert!(pat.matches(c.to_str().as_slice()));
|
||||
assert!(pat.matches(c.to_string().as_slice()));
|
||||
}
|
||||
for c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ".chars() {
|
||||
let options = MatchOptions {case_sensitive: false, .. MatchOptions::new()};
|
||||
assert!(pat.matches_with(c.to_str().as_slice(), options));
|
||||
assert!(pat.matches_with(c.to_string().as_slice(), options));
|
||||
}
|
||||
assert!(pat.matches("1"));
|
||||
assert!(pat.matches("2"));
|
||||
|
@ -666,7 +666,7 @@ mod tests {
|
||||
let mut writer = MemWriter::new();
|
||||
render(&g, &mut writer).unwrap();
|
||||
let mut r = BufReader::new(writer.get_ref());
|
||||
match r.read_to_str() {
|
||||
match r.read_to_string() {
|
||||
Ok(string) => Ok(string.to_string()),
|
||||
Err(err) => Err(err),
|
||||
}
|
||||
@ -768,7 +768,7 @@ r#"digraph hasse_diagram {
|
||||
|
||||
render(&g, &mut writer).unwrap();
|
||||
let mut r = BufReader::new(writer.get_ref());
|
||||
let r = r.read_to_str();
|
||||
let r = r.read_to_string();
|
||||
|
||||
assert_eq!(r.unwrap().as_slice(),
|
||||
r#"digraph syntax_tree {
|
||||
|
@ -259,7 +259,7 @@ pub fn to_utf16(s: &CString) -> IoResult<Vec<u16>> {
|
||||
None => Err(IoError {
|
||||
code: libc::ERROR_INVALID_NAME as uint,
|
||||
extra: 0,
|
||||
detail: Some("valid unicode input required".to_str()),
|
||||
detail: Some("valid unicode input required".to_string()),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ fn addr_to_sockaddr_un(addr: &CString) -> IoResult<(libc::sockaddr_storage, uint
|
||||
return Err(IoError {
|
||||
code: ERROR as uint,
|
||||
extra: 0,
|
||||
detail: Some("path must be smaller than SUN_LEN".to_str()),
|
||||
detail: Some("path must be smaller than SUN_LEN".to_string()),
|
||||
})
|
||||
}
|
||||
s.sun_family = libc::AF_UNIX as libc::sa_family_t;
|
||||
|
@ -479,7 +479,7 @@ impl rtio::RtioPipe for UnixStream {
|
||||
Err(IoError {
|
||||
code: libc::ERROR_OPERATION_ABORTED as uint,
|
||||
extra: amt,
|
||||
detail: Some("short write during write".to_str()),
|
||||
detail: Some("short write during write".to_string()),
|
||||
})
|
||||
} else {
|
||||
Err(util::timeout("write timed out"))
|
||||
|
@ -170,7 +170,7 @@ impl rtio::RtioProcess for Process {
|
||||
Some(..) => return Err(IoError {
|
||||
code: ERROR as uint,
|
||||
extra: 0,
|
||||
detail: Some("can't kill an exited process".to_str()),
|
||||
detail: Some("can't kill an exited process".to_string()),
|
||||
}),
|
||||
None => {}
|
||||
}
|
||||
@ -301,7 +301,7 @@ fn spawn_process_os(cfg: ProcessConfig,
|
||||
return Err(IoError {
|
||||
code: libc::ERROR_CALL_NOT_IMPLEMENTED as uint,
|
||||
extra: 0,
|
||||
detail: Some("unsupported gid/uid requested on windows".to_str()),
|
||||
detail: Some("unsupported gid/uid requested on windows".to_string()),
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ pub fn timeout(desc: &'static str) -> IoError {
|
||||
IoError {
|
||||
code: ERROR as uint,
|
||||
extra: 0,
|
||||
detail: Some(desc.to_str()),
|
||||
detail: Some(desc.to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ pub fn short_write(n: uint, desc: &'static str) -> IoError {
|
||||
IoError {
|
||||
code: ERROR as uint,
|
||||
extra: n,
|
||||
detail: Some(desc.to_str()),
|
||||
detail: Some(desc.to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2737,7 +2737,7 @@ mod bigint_tests {
|
||||
// attempt to allocate a vector of size (-1u) == huge.
|
||||
let x: BigInt =
|
||||
from_str(format!("1{}", "0".repeat(36)).as_slice()).unwrap();
|
||||
let _y = x.to_str();
|
||||
let _y = x.to_string();
|
||||
}
|
||||
|
||||
#[test]
|
||||
@ -2842,14 +2842,14 @@ mod bench {
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn to_str(b: &mut Bencher) {
|
||||
fn to_string(b: &mut Bencher) {
|
||||
let fac = factorial(100);
|
||||
let fib = fib(100);
|
||||
b.iter(|| {
|
||||
fac.to_str();
|
||||
fac.to_string();
|
||||
});
|
||||
b.iter(|| {
|
||||
fib.to_str();
|
||||
fib.to_string();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -347,9 +347,9 @@ mod test {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_to_str() {
|
||||
fn test_to_string() {
|
||||
fn test(c : Complex64, s: String) {
|
||||
assert_eq!(c.to_str(), s);
|
||||
assert_eq!(c.to_string(), s);
|
||||
}
|
||||
test(_0_0i, "0+0i".to_string());
|
||||
test(_1_0i, "1+0i".to_string());
|
||||
|
@ -17,6 +17,7 @@ use std::fmt;
|
||||
use std::from_str::FromStr;
|
||||
use std::num;
|
||||
use std::num::{Zero, One, ToStrRadix, FromStrRadix};
|
||||
|
||||
use bigint::{BigInt, BigUint, Sign, Plus, Minus};
|
||||
|
||||
/// Represents the ratio between 2 numbers.
|
||||
@ -603,7 +604,7 @@ mod test {
|
||||
fn test_to_from_str() {
|
||||
fn test(r: Rational, s: String) {
|
||||
assert_eq!(FromStr::from_str(s.as_slice()), Some(r));
|
||||
assert_eq!(r.to_str(), s);
|
||||
assert_eq!(r.to_string(), s);
|
||||
}
|
||||
test(_1, "1".to_string());
|
||||
test(_0, "0".to_string());
|
||||
|
@ -87,7 +87,7 @@ fn native(cx: &mut ExtCtxt, sp: codemap::Span, tts: &[ast::TokenTree])
|
||||
let re = match Regex::new(regex.as_slice()) {
|
||||
Ok(re) => re,
|
||||
Err(err) => {
|
||||
cx.span_err(sp, err.to_str().as_slice());
|
||||
cx.span_err(sp, err.to_string().as_slice());
|
||||
return DummyResult::any(sp)
|
||||
}
|
||||
};
|
||||
@ -621,11 +621,11 @@ fn parse(cx: &mut ExtCtxt, tts: &[ast::TokenTree]) -> Option<String> {
|
||||
let regex = match entry.node {
|
||||
ast::ExprLit(lit) => {
|
||||
match lit.node {
|
||||
ast::LitStr(ref s, _) => s.to_str(),
|
||||
ast::LitStr(ref s, _) => s.to_string(),
|
||||
_ => {
|
||||
cx.span_err(entry.span, format!(
|
||||
"expected string literal but got `{}`",
|
||||
pprust::lit_to_str(lit)).as_slice());
|
||||
pprust::lit_to_string(lit)).as_slice());
|
||||
return None
|
||||
}
|
||||
}
|
||||
@ -633,7 +633,7 @@ fn parse(cx: &mut ExtCtxt, tts: &[ast::TokenTree]) -> Option<String> {
|
||||
_ => {
|
||||
cx.span_err(entry.span, format!(
|
||||
"expected string literal but got `{}`",
|
||||
pprust::expr_to_str(entry)).as_slice());
|
||||
pprust::expr_to_string(entry)).as_slice());
|
||||
return None
|
||||
}
|
||||
};
|
||||
|
@ -773,7 +773,7 @@ pub fn mangle_exported_name(ccx: &CrateContext, path: PathElems,
|
||||
pub fn mangle_internal_name_by_type_and_seq(ccx: &CrateContext,
|
||||
t: ty::t,
|
||||
name: &str) -> String {
|
||||
let s = ppaux::ty_to_str(ccx.tcx(), t);
|
||||
let s = ppaux::ty_to_string(ccx.tcx(), t);
|
||||
let path = [PathName(token::intern(s.as_slice())),
|
||||
gensym_name(name)];
|
||||
let hash = get_symbol_hash(ccx, t);
|
||||
|
@ -340,13 +340,13 @@ mod svh_visitor {
|
||||
// trees might be faster. Implementing this is far
|
||||
// easier in short term.
|
||||
let macro_defn_as_string =
|
||||
pprust::to_str(|pp_state| pp_state.print_mac(macro));
|
||||
pprust::to_string(|pp_state| pp_state.print_mac(macro));
|
||||
macro_defn_as_string.hash(self.st);
|
||||
} else {
|
||||
// It is not possible to observe any kind of macro
|
||||
// invocation at this stage except `macro_rules!`.
|
||||
fail!("reached macro somehow: {}",
|
||||
pprust::to_str(|pp_state| pp_state.print_mac(macro)));
|
||||
pprust::to_string(|pp_state| pp_state.print_mac(macro)));
|
||||
}
|
||||
|
||||
visit::walk_mac(self, macro, e);
|
||||
|
@ -594,7 +594,7 @@ impl pprust::PpAnn for IdentifiedAnnotation {
|
||||
match node {
|
||||
pprust::NodeItem(item) => {
|
||||
try!(pp::space(&mut s.s));
|
||||
s.synth_comment(item.id.to_str())
|
||||
s.synth_comment(item.id.to_string())
|
||||
}
|
||||
pprust::NodeBlock(blk) => {
|
||||
try!(pp::space(&mut s.s));
|
||||
@ -602,7 +602,7 @@ impl pprust::PpAnn for IdentifiedAnnotation {
|
||||
}
|
||||
pprust::NodeExpr(expr) => {
|
||||
try!(pp::space(&mut s.s));
|
||||
try!(s.synth_comment(expr.id.to_str()));
|
||||
try!(s.synth_comment(expr.id.to_string()));
|
||||
s.pclose()
|
||||
}
|
||||
pprust::NodePat(pat) => {
|
||||
@ -636,7 +636,7 @@ impl pprust::PpAnn for TypedAnnotation {
|
||||
try!(pp::word(&mut s.s, "as"));
|
||||
try!(pp::space(&mut s.s));
|
||||
try!(pp::word(&mut s.s,
|
||||
ppaux::ty_to_str(
|
||||
ppaux::ty_to_string(
|
||||
tcx,
|
||||
ty::expr_ty(tcx, expr)).as_slice()));
|
||||
s.pclose()
|
||||
|
@ -251,7 +251,7 @@ pub fn handle_options(mut args: Vec<String>) -> Option<getopts::Matches> {
|
||||
match getopts::getopts(args.as_slice(), config::optgroups().as_slice()) {
|
||||
Ok(m) => m,
|
||||
Err(f) => {
|
||||
early_error(f.to_str().as_slice());
|
||||
early_error(f.to_string().as_slice());
|
||||
}
|
||||
};
|
||||
|
||||
@ -450,7 +450,7 @@ fn monitor(f: proc():Send) {
|
||||
emitter.emit(None, note.as_slice(), diagnostic::Note)
|
||||
}
|
||||
|
||||
match r.read_to_str() {
|
||||
match r.read_to_string() {
|
||||
Ok(s) => println!("{}", s),
|
||||
Err(e) => {
|
||||
emitter.emit(None,
|
||||
|
@ -347,7 +347,7 @@ fn mk_test_module(cx: &TestCtxt) -> Gc<ast::Item> {
|
||||
span: DUMMY_SP,
|
||||
};
|
||||
|
||||
debug!("Synthetic test module:\n{}\n", pprust::item_to_str(&item));
|
||||
debug!("Synthetic test module:\n{}\n", pprust::item_to_string(&item));
|
||||
|
||||
box(GC) item
|
||||
}
|
||||
|
@ -1883,7 +1883,7 @@ impl TypeNames {
|
||||
self.named_types.borrow().find_equiv(&s).map(|x| Type::from_ref(*x))
|
||||
}
|
||||
|
||||
pub fn type_to_str(&self, ty: Type) -> String {
|
||||
pub fn type_to_string(&self, ty: Type) -> String {
|
||||
unsafe {
|
||||
let s = llvm::LLVMTypeToString(ty.to_ref());
|
||||
let ret = from_c_str(s);
|
||||
@ -1893,11 +1893,11 @@ impl TypeNames {
|
||||
}
|
||||
|
||||
pub fn types_to_str(&self, tys: &[Type]) -> String {
|
||||
let strs: Vec<String> = tys.iter().map(|t| self.type_to_str(*t)).collect();
|
||||
let strs: Vec<String> = tys.iter().map(|t| self.type_to_string(*t)).collect();
|
||||
format!("[{}]", strs.connect(","))
|
||||
}
|
||||
|
||||
pub fn val_to_str(&self, val: ValueRef) -> String {
|
||||
pub fn val_to_string(&self, val: ValueRef) -> String {
|
||||
unsafe {
|
||||
let s = llvm::LLVMValueToString(val);
|
||||
let ret = from_c_str(s);
|
||||
|
@ -31,7 +31,7 @@ use middle::trans::adt; // for `adt::is_ffi_safe`
|
||||
use middle::typeck::astconv::ast_ty_to_ty;
|
||||
use middle::typeck::infer;
|
||||
use middle::{typeck, ty, def, pat_util, stability};
|
||||
use util::ppaux::{ty_to_str};
|
||||
use util::ppaux::{ty_to_string};
|
||||
use util::nodemap::NodeSet;
|
||||
use lint::{Context, LintPass, LintArray};
|
||||
|
||||
@ -412,14 +412,14 @@ impl HeapMemory {
|
||||
});
|
||||
|
||||
if n_uniq > 0 {
|
||||
let s = ty_to_str(cx.tcx, ty);
|
||||
let s = ty_to_string(cx.tcx, ty);
|
||||
let m = format!("type uses owned (Box type) pointers: {}", s);
|
||||
cx.span_lint(OWNED_HEAP_MEMORY, span, m.as_slice());
|
||||
cx.span_lint(HEAP_MEMORY, span, m.as_slice());
|
||||
}
|
||||
|
||||
if n_box > 0 {
|
||||
let s = ty_to_str(cx.tcx, ty);
|
||||
let s = ty_to_string(cx.tcx, ty);
|
||||
let m = format!("type uses managed (@ type) pointers: {}", s);
|
||||
cx.span_lint(MANAGED_HEAP_MEMORY, span, m.as_slice());
|
||||
cx.span_lint(HEAP_MEMORY, span, m.as_slice());
|
||||
|
@ -666,7 +666,7 @@ pub fn check_crate(tcx: &ty::ctxt,
|
||||
for &(lint, span, ref msg) in v.iter() {
|
||||
tcx.sess.span_bug(span,
|
||||
format!("unprocessed lint {} at {}: {}",
|
||||
lint.as_str(), tcx.map.node_to_str(*id), *msg).as_slice())
|
||||
lint.as_str(), tcx.map.node_to_string(*id), *msg).as_slice())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,12 +148,12 @@ fn extract_crate_info(e: &Env, i: &ast::ViewItem) -> Option<CrateInfo> {
|
||||
ident, path_opt);
|
||||
let name = match *path_opt {
|
||||
Some((ref path_str, _)) => {
|
||||
let name = path_str.get().to_str();
|
||||
let name = path_str.get().to_string();
|
||||
validate_crate_name(Some(e.sess), name.as_slice(),
|
||||
Some(i.span));
|
||||
name
|
||||
}
|
||||
None => ident.get().to_str(),
|
||||
None => ident.get().to_string(),
|
||||
};
|
||||
Some(CrateInfo {
|
||||
ident: ident.get().to_string(),
|
||||
|
@ -1087,7 +1087,7 @@ fn list_crate_attributes(md: ebml::Doc, hash: &Svh,
|
||||
|
||||
let r = get_attributes(md);
|
||||
for attr in r.iter() {
|
||||
try!(write!(out, "{}\n", pprust::attribute_to_str(attr)));
|
||||
try!(write!(out, "{}\n", pprust::attribute_to_string(attr)));
|
||||
}
|
||||
|
||||
write!(out, "\n\n")
|
||||
|
@ -101,7 +101,7 @@ fn encode_impl_type_basename(ebml_w: &mut Encoder, name: Ident) {
|
||||
}
|
||||
|
||||
pub fn encode_def_id(ebml_w: &mut Encoder, id: DefId) {
|
||||
ebml_w.wr_tagged_str(tag_def_id, def_to_str(id).as_slice());
|
||||
ebml_w.wr_tagged_str(tag_def_id, def_to_string(id).as_slice());
|
||||
}
|
||||
|
||||
#[deriving(Clone)]
|
||||
@ -116,7 +116,7 @@ fn encode_trait_ref(ebml_w: &mut Encoder,
|
||||
tag: uint) {
|
||||
let ty_str_ctxt = &tyencode::ctxt {
|
||||
diag: ecx.diag,
|
||||
ds: def_to_str,
|
||||
ds: def_to_string,
|
||||
tcx: ecx.tcx,
|
||||
abbrevs: &ecx.type_abbrevs
|
||||
};
|
||||
@ -141,7 +141,7 @@ fn encode_family(ebml_w: &mut Encoder, c: char) {
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
|
||||
pub fn def_to_str(did: DefId) -> String {
|
||||
pub fn def_to_string(did: DefId) -> String {
|
||||
format!("{}:{}", did.krate, did.node)
|
||||
}
|
||||
|
||||
@ -151,7 +151,7 @@ fn encode_ty_type_param_defs(ebml_w: &mut Encoder,
|
||||
tag: uint) {
|
||||
let ty_str_ctxt = &tyencode::ctxt {
|
||||
diag: ecx.diag,
|
||||
ds: def_to_str,
|
||||
ds: def_to_string,
|
||||
tcx: ecx.tcx,
|
||||
abbrevs: &ecx.type_abbrevs
|
||||
};
|
||||
@ -172,7 +172,7 @@ fn encode_region_param_defs(ebml_w: &mut Encoder,
|
||||
ebml_w.end_tag();
|
||||
|
||||
ebml_w.wr_tagged_str(tag_region_param_def_def_id,
|
||||
def_to_str(param.def_id).as_slice());
|
||||
def_to_string(param.def_id).as_slice());
|
||||
|
||||
ebml_w.wr_tagged_u64(tag_region_param_def_space,
|
||||
param.space.to_uint() as u64);
|
||||
@ -204,7 +204,7 @@ fn encode_bounds_and_type(ebml_w: &mut Encoder,
|
||||
|
||||
fn encode_variant_id(ebml_w: &mut Encoder, vid: DefId) {
|
||||
ebml_w.start_tag(tag_items_data_item_variant);
|
||||
let s = def_to_str(vid);
|
||||
let s = def_to_string(vid);
|
||||
ebml_w.writer.write(s.as_bytes());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
@ -214,7 +214,7 @@ pub fn write_type(ecx: &EncodeContext,
|
||||
typ: ty::t) {
|
||||
let ty_str_ctxt = &tyencode::ctxt {
|
||||
diag: ecx.diag,
|
||||
ds: def_to_str,
|
||||
ds: def_to_string,
|
||||
tcx: ecx.tcx,
|
||||
abbrevs: &ecx.type_abbrevs
|
||||
};
|
||||
@ -236,7 +236,7 @@ fn encode_method_fty(ecx: &EncodeContext,
|
||||
|
||||
let ty_str_ctxt = &tyencode::ctxt {
|
||||
diag: ecx.diag,
|
||||
ds: def_to_str,
|
||||
ds: def_to_string,
|
||||
tcx: ecx.tcx,
|
||||
abbrevs: &ecx.type_abbrevs
|
||||
};
|
||||
@ -266,14 +266,14 @@ fn encode_disr_val(_: &EncodeContext,
|
||||
ebml_w: &mut Encoder,
|
||||
disr_val: ty::Disr) {
|
||||
ebml_w.start_tag(tag_disr_val);
|
||||
let s = disr_val.to_str();
|
||||
let s = disr_val.to_string();
|
||||
ebml_w.writer.write(s.as_bytes());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
|
||||
fn encode_parent_item(ebml_w: &mut Encoder, id: DefId) {
|
||||
ebml_w.start_tag(tag_items_data_parent_item);
|
||||
let s = def_to_str(id);
|
||||
let s = def_to_string(id);
|
||||
ebml_w.writer.write(s.as_bytes());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
@ -291,7 +291,7 @@ fn encode_struct_fields(ebml_w: &mut Encoder,
|
||||
encode_struct_field_family(ebml_w, f.vis);
|
||||
encode_def_id(ebml_w, f.id);
|
||||
ebml_w.start_tag(tag_item_field_origin);
|
||||
let s = def_to_str(origin);
|
||||
let s = def_to_string(origin);
|
||||
ebml_w.writer.write(s.as_bytes());
|
||||
ebml_w.end_tag();
|
||||
ebml_w.end_tag();
|
||||
@ -382,7 +382,7 @@ fn encode_reexported_static_method(ebml_w: &mut Encoder,
|
||||
exp.name, token::get_ident(method_ident));
|
||||
ebml_w.start_tag(tag_items_data_item_reexport);
|
||||
ebml_w.start_tag(tag_items_data_item_reexport_def_id);
|
||||
ebml_w.wr_str(def_to_str(method_def_id).as_slice());
|
||||
ebml_w.wr_str(def_to_string(method_def_id).as_slice());
|
||||
ebml_w.end_tag();
|
||||
ebml_w.start_tag(tag_items_data_item_reexport_name);
|
||||
ebml_w.wr_str(format!("{}::{}",
|
||||
@ -529,7 +529,7 @@ fn encode_reexports(ecx: &EncodeContext,
|
||||
id);
|
||||
ebml_w.start_tag(tag_items_data_item_reexport);
|
||||
ebml_w.start_tag(tag_items_data_item_reexport_def_id);
|
||||
ebml_w.wr_str(def_to_str(exp.def_id).as_slice());
|
||||
ebml_w.wr_str(def_to_string(exp.def_id).as_slice());
|
||||
ebml_w.end_tag();
|
||||
ebml_w.start_tag(tag_items_data_item_reexport_name);
|
||||
ebml_w.wr_str(exp.name.as_slice());
|
||||
@ -562,12 +562,12 @@ fn encode_info_for_mod(ecx: &EncodeContext,
|
||||
// Encode info about all the module children.
|
||||
for item in md.items.iter() {
|
||||
ebml_w.start_tag(tag_mod_child);
|
||||
ebml_w.wr_str(def_to_str(local_def(item.id)).as_slice());
|
||||
ebml_w.wr_str(def_to_string(local_def(item.id)).as_slice());
|
||||
ebml_w.end_tag();
|
||||
|
||||
each_auxiliary_node_id(*item, |auxiliary_node_id| {
|
||||
ebml_w.start_tag(tag_mod_child);
|
||||
ebml_w.wr_str(def_to_str(local_def(
|
||||
ebml_w.wr_str(def_to_string(local_def(
|
||||
auxiliary_node_id)).as_slice());
|
||||
ebml_w.end_tag();
|
||||
true
|
||||
@ -579,10 +579,10 @@ fn encode_info_for_mod(ecx: &EncodeContext,
|
||||
debug!("(encoding info for module) ... encoding impl {} \
|
||||
({:?}/{:?})",
|
||||
token::get_ident(ident),
|
||||
did, ecx.tcx.map.node_to_str(did));
|
||||
did, ecx.tcx.map.node_to_string(did));
|
||||
|
||||
ebml_w.start_tag(tag_mod_impl);
|
||||
ebml_w.wr_str(def_to_str(local_def(did)).as_slice());
|
||||
ebml_w.wr_str(def_to_string(local_def(did)).as_slice());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
_ => {}
|
||||
@ -659,7 +659,7 @@ fn encode_provided_source(ebml_w: &mut Encoder,
|
||||
source_opt: Option<DefId>) {
|
||||
for source in source_opt.iter() {
|
||||
ebml_w.start_tag(tag_item_method_provided_source);
|
||||
let s = def_to_str(*source);
|
||||
let s = def_to_string(*source);
|
||||
ebml_w.writer.write(s.as_bytes());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
@ -916,7 +916,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
|
||||
}
|
||||
|
||||
debug!("encoding info for item at {}",
|
||||
tcx.sess.codemap().span_to_str(item.span));
|
||||
tcx.sess.codemap().span_to_string(item.span));
|
||||
|
||||
let def_id = local_def(item.id);
|
||||
let stab = stability::lookup(tcx, ast_util::local_def(item.id));
|
||||
@ -987,7 +987,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
|
||||
// Encode all the items in this module.
|
||||
for foreign_item in fm.items.iter() {
|
||||
ebml_w.start_tag(tag_mod_child);
|
||||
ebml_w.wr_str(def_to_str(local_def(foreign_item.id)).as_slice());
|
||||
ebml_w.wr_str(def_to_string(local_def(foreign_item.id)).as_slice());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
encode_visibility(ebml_w, vis);
|
||||
@ -1111,7 +1111,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
|
||||
}
|
||||
for &method_def_id in methods.iter() {
|
||||
ebml_w.start_tag(tag_item_impl_method);
|
||||
let s = def_to_str(method_def_id);
|
||||
let s = def_to_string(method_def_id);
|
||||
ebml_w.writer.write(s.as_bytes());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
@ -1174,7 +1174,7 @@ fn encode_info_for_item(ecx: &EncodeContext,
|
||||
ebml_w.end_tag();
|
||||
|
||||
ebml_w.start_tag(tag_mod_child);
|
||||
ebml_w.wr_str(def_to_str(method_def_id).as_slice());
|
||||
ebml_w.wr_str(def_to_string(method_def_id).as_slice());
|
||||
ebml_w.end_tag();
|
||||
}
|
||||
encode_path(ebml_w, path.clone());
|
||||
@ -1327,7 +1327,7 @@ fn my_visit_foreign_item(ni: &ForeignItem,
|
||||
// See above
|
||||
let ecx: &EncodeContext = unsafe { mem::transmute(ecx_ptr) };
|
||||
debug!("writing foreign item {}::{}",
|
||||
ecx.tcx.map.path_to_str(ni.id),
|
||||
ecx.tcx.map.path_to_string(ni.id),
|
||||
token::get_ident(ni.ident));
|
||||
|
||||
let mut ebml_w = unsafe {
|
||||
@ -1693,12 +1693,12 @@ fn encode_misc_info(ecx: &EncodeContext,
|
||||
ebml_w.start_tag(tag_misc_info_crate_items);
|
||||
for &item in krate.module.items.iter() {
|
||||
ebml_w.start_tag(tag_mod_child);
|
||||
ebml_w.wr_str(def_to_str(local_def(item.id)).as_slice());
|
||||
ebml_w.wr_str(def_to_string(local_def(item.id)).as_slice());
|
||||
ebml_w.end_tag();
|
||||
|
||||
each_auxiliary_node_id(item, |auxiliary_node_id| {
|
||||
ebml_w.start_tag(tag_mod_child);
|
||||
ebml_w.wr_str(def_to_str(local_def(
|
||||
ebml_w.wr_str(def_to_string(local_def(
|
||||
auxiliary_node_id)).as_slice());
|
||||
ebml_w.end_tag();
|
||||
true
|
||||
@ -1939,7 +1939,7 @@ pub fn encoded_ty(tcx: &ty::ctxt, t: ty::t) -> String {
|
||||
let mut wr = MemWriter::new();
|
||||
tyencode::enc_ty(&mut wr, &tyencode::ctxt {
|
||||
diag: tcx.sess.diagnostic(),
|
||||
ds: def_to_str,
|
||||
ds: def_to_string,
|
||||
tcx: tcx,
|
||||
abbrevs: &RefCell::new(HashMap::new())
|
||||
}, t);
|
||||
|
@ -28,7 +28,7 @@ use middle::subst;
|
||||
use middle::subst::VecPerParamSpace;
|
||||
use middle::typeck::{MethodCall, MethodCallee, MethodOrigin};
|
||||
use middle::{ty, typeck};
|
||||
use util::ppaux::ty_to_str;
|
||||
use util::ppaux::ty_to_string;
|
||||
|
||||
use syntax::{ast, ast_map, ast_util, codemap, fold};
|
||||
use syntax::codemap::Span;
|
||||
@ -86,7 +86,7 @@ pub fn encode_inlined_item(ecx: &e::EncodeContext,
|
||||
e::IIMethodRef(_, _, m) => m.id,
|
||||
};
|
||||
debug!("> Encoding inlined item: {} ({})",
|
||||
ecx.tcx.map.path_to_str(id),
|
||||
ecx.tcx.map.path_to_string(id),
|
||||
ebml_w.writer.tell());
|
||||
|
||||
let ii = simplify_ast(ii);
|
||||
@ -99,7 +99,7 @@ pub fn encode_inlined_item(ecx: &e::EncodeContext,
|
||||
ebml_w.end_tag();
|
||||
|
||||
debug!("< Encoded inlined fn: {} ({})",
|
||||
ecx.tcx.map.path_to_str(id),
|
||||
ecx.tcx.map.path_to_string(id),
|
||||
ebml_w.writer.tell());
|
||||
}
|
||||
|
||||
@ -119,7 +119,7 @@ pub fn decode_inlined_item(cdata: &cstore::crate_metadata,
|
||||
debug!("> Decoding inlined fn: {}::?",
|
||||
{
|
||||
// Do an Option dance to use the path after it is moved below.
|
||||
let s = ast_map::path_to_str(ast_map::Values(path.iter()));
|
||||
let s = ast_map::path_to_string(ast_map::Values(path.iter()));
|
||||
path_as_str = Some(s);
|
||||
path_as_str.as_ref().map(|x| x.as_slice())
|
||||
});
|
||||
@ -147,7 +147,7 @@ pub fn decode_inlined_item(cdata: &cstore::crate_metadata,
|
||||
match ii {
|
||||
ast::IIItem(i) => {
|
||||
debug!(">>> DECODED ITEM >>>\n{}\n<<< DECODED ITEM <<<",
|
||||
syntax::print::pprust::item_to_str(&*i));
|
||||
syntax::print::pprust::item_to_string(&*i));
|
||||
}
|
||||
_ => { }
|
||||
}
|
||||
@ -826,7 +826,7 @@ impl<'a> get_ty_str_ctxt for e::EncodeContext<'a> {
|
||||
fn ty_str_ctxt<'a>(&'a self) -> tyencode::ctxt<'a> {
|
||||
tyencode::ctxt {
|
||||
diag: self.tcx.sess.diagnostic(),
|
||||
ds: e::def_to_str,
|
||||
ds: e::def_to_string,
|
||||
tcx: self.tcx,
|
||||
abbrevs: &self.type_abbrevs
|
||||
}
|
||||
@ -1391,7 +1391,7 @@ fn decode_side_tables(xcx: &ExtendedDecodeContext,
|
||||
c::tag_table_node_type => {
|
||||
let ty = val_dsr.read_ty(xcx);
|
||||
debug!("inserting ty for node {:?}: {}",
|
||||
id, ty_to_str(dcx.tcx, ty));
|
||||
id, ty_to_string(dcx.tcx, ty));
|
||||
dcx.tcx.node_types.borrow_mut().insert(id as uint, ty);
|
||||
}
|
||||
c::tag_table_item_subst => {
|
||||
@ -1561,7 +1561,7 @@ fn test_simplification() {
|
||||
).unwrap());
|
||||
match (item_out, item_exp) {
|
||||
(ast::IIItem(item_out), ast::IIItem(item_exp)) => {
|
||||
assert!(pprust::item_to_str(item_out) == pprust::item_to_str(item_exp));
|
||||
assert!(pprust::item_to_string(item_out) == pprust::item_to_string(item_exp));
|
||||
}
|
||||
_ => fail!()
|
||||
}
|
||||
|
@ -351,7 +351,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
"it".to_string()
|
||||
} else {
|
||||
format!("`{}`",
|
||||
self.bccx.loan_path_to_str(&*old_loan.loan_path))
|
||||
self.bccx.loan_path_to_string(&*old_loan.loan_path))
|
||||
};
|
||||
|
||||
match (new_loan.kind, old_loan.kind) {
|
||||
@ -360,7 +360,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
new_loan.span,
|
||||
format!("cannot borrow `{}` as mutable \
|
||||
more than once at a time",
|
||||
self.bccx.loan_path_to_str(
|
||||
self.bccx.loan_path_to_string(
|
||||
&*new_loan.loan_path)).as_slice());
|
||||
}
|
||||
|
||||
@ -369,7 +369,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
new_loan.span,
|
||||
format!("closure requires unique access to `{}` \
|
||||
but {} is already borrowed",
|
||||
self.bccx.loan_path_to_str(&*new_loan.loan_path),
|
||||
self.bccx.loan_path_to_string(&*new_loan.loan_path),
|
||||
old_pronoun).as_slice());
|
||||
}
|
||||
|
||||
@ -378,7 +378,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
new_loan.span,
|
||||
format!("cannot borrow `{}` as {} because \
|
||||
previous closure requires unique access",
|
||||
self.bccx.loan_path_to_str(&*new_loan.loan_path),
|
||||
self.bccx.loan_path_to_string(&*new_loan.loan_path),
|
||||
new_loan.kind.to_user_str()).as_slice());
|
||||
}
|
||||
|
||||
@ -387,7 +387,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
new_loan.span,
|
||||
format!("cannot borrow `{}` as {} because \
|
||||
{} is also borrowed as {}",
|
||||
self.bccx.loan_path_to_str(&*new_loan.loan_path),
|
||||
self.bccx.loan_path_to_string(&*new_loan.loan_path),
|
||||
new_loan.kind.to_user_str(),
|
||||
old_pronoun,
|
||||
old_loan.kind.to_user_str()).as_slice());
|
||||
@ -399,7 +399,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
self.bccx.span_note(
|
||||
span,
|
||||
format!("borrow occurs due to use of `{}` in closure",
|
||||
self.bccx.loan_path_to_str(
|
||||
self.bccx.loan_path_to_string(
|
||||
&*new_loan.loan_path)).as_slice());
|
||||
}
|
||||
_ => { }
|
||||
@ -410,7 +410,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
format!("the mutable borrow prevents subsequent \
|
||||
moves, borrows, or modification of `{0}` \
|
||||
until the borrow ends",
|
||||
self.bccx.loan_path_to_str(
|
||||
self.bccx.loan_path_to_string(
|
||||
&*old_loan.loan_path))
|
||||
}
|
||||
|
||||
@ -418,14 +418,14 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
format!("the immutable borrow prevents subsequent \
|
||||
moves or mutable borrows of `{0}` \
|
||||
until the borrow ends",
|
||||
self.bccx.loan_path_to_str(&*old_loan.loan_path))
|
||||
self.bccx.loan_path_to_string(&*old_loan.loan_path))
|
||||
}
|
||||
|
||||
ty::UniqueImmBorrow => {
|
||||
format!("the unique capture prevents subsequent \
|
||||
moves or borrows of `{0}` \
|
||||
until the borrow ends",
|
||||
self.bccx.loan_path_to_str(&*old_loan.loan_path))
|
||||
self.bccx.loan_path_to_string(&*old_loan.loan_path))
|
||||
}
|
||||
};
|
||||
|
||||
@ -433,7 +433,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
euv::ClosureCapture(_) => {
|
||||
format!("previous borrow of `{}` occurs here due to \
|
||||
use in closure",
|
||||
self.bccx.loan_path_to_str(&*old_loan.loan_path))
|
||||
self.bccx.loan_path_to_string(&*old_loan.loan_path))
|
||||
}
|
||||
|
||||
euv::OverloadedOperator(..) |
|
||||
@ -442,7 +442,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
euv::ClosureInvocation(..) |
|
||||
euv::RefBinding(..) => {
|
||||
format!("previous borrow of `{}` occurs here",
|
||||
self.bccx.loan_path_to_str(&*old_loan.loan_path))
|
||||
self.bccx.loan_path_to_string(&*old_loan.loan_path))
|
||||
}
|
||||
};
|
||||
|
||||
@ -518,12 +518,12 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
self.bccx.span_err(
|
||||
span,
|
||||
format!("cannot use `{}` because it was mutably borrowed",
|
||||
self.bccx.loan_path_to_str(copy_path).as_slice())
|
||||
self.bccx.loan_path_to_string(copy_path).as_slice())
|
||||
.as_slice());
|
||||
self.bccx.span_note(
|
||||
loan_span,
|
||||
format!("borrow of `{}` occurs here",
|
||||
self.bccx.loan_path_to_str(&*loan_path).as_slice())
|
||||
self.bccx.loan_path_to_string(&*loan_path).as_slice())
|
||||
.as_slice());
|
||||
}
|
||||
}
|
||||
@ -543,19 +543,19 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
let err_message = match move_kind {
|
||||
move_data::Captured =>
|
||||
format!("cannot move `{}` into closure because it is borrowed",
|
||||
self.bccx.loan_path_to_str(move_path).as_slice()),
|
||||
self.bccx.loan_path_to_string(move_path).as_slice()),
|
||||
move_data::Declared |
|
||||
move_data::MoveExpr |
|
||||
move_data::MovePat =>
|
||||
format!("cannot move out of `{}` because it is borrowed",
|
||||
self.bccx.loan_path_to_str(move_path).as_slice())
|
||||
self.bccx.loan_path_to_string(move_path).as_slice())
|
||||
};
|
||||
|
||||
self.bccx.span_err(span, err_message.as_slice());
|
||||
self.bccx.span_note(
|
||||
loan_span,
|
||||
format!("borrow of `{}` occurs here",
|
||||
self.bccx.loan_path_to_str(&*loan_path).as_slice())
|
||||
self.bccx.loan_path_to_string(&*loan_path).as_slice())
|
||||
.as_slice());
|
||||
}
|
||||
}
|
||||
@ -567,7 +567,7 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
borrow_kind: ty::BorrowKind)
|
||||
-> UseError {
|
||||
debug!("analyze_restrictions_on_use(expr_id={:?}, use_path={})",
|
||||
self.tcx().map.node_to_str(expr_id),
|
||||
self.tcx().map.node_to_string(expr_id),
|
||||
use_path.repr(self.tcx()));
|
||||
|
||||
let mut ret = UseOk;
|
||||
@ -690,15 +690,15 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
assignment_span,
|
||||
format!("cannot assign to {} {} `{}`",
|
||||
assignee_cmt.mutbl.to_user_str(),
|
||||
self.bccx.cmt_to_str(&*assignee_cmt),
|
||||
self.bccx.loan_path_to_str(&*lp)).as_slice());
|
||||
self.bccx.cmt_to_string(&*assignee_cmt),
|
||||
self.bccx.loan_path_to_string(&*lp)).as_slice());
|
||||
}
|
||||
None => {
|
||||
self.bccx.span_err(
|
||||
assignment_span,
|
||||
format!("cannot assign to {} {}",
|
||||
assignee_cmt.mutbl.to_user_str(),
|
||||
self.bccx.cmt_to_str(&*assignee_cmt)).as_slice());
|
||||
self.bccx.cmt_to_string(&*assignee_cmt)).as_slice());
|
||||
}
|
||||
}
|
||||
return;
|
||||
@ -824,10 +824,10 @@ impl<'a> CheckLoanCtxt<'a> {
|
||||
self.bccx.span_err(
|
||||
span,
|
||||
format!("cannot assign to `{}` because it is borrowed",
|
||||
self.bccx.loan_path_to_str(loan_path)).as_slice());
|
||||
self.bccx.loan_path_to_string(loan_path)).as_slice());
|
||||
self.bccx.span_note(
|
||||
loan.span,
|
||||
format!("borrow of `{}` occurs here",
|
||||
self.bccx.loan_path_to_str(loan_path)).as_slice());
|
||||
self.bccx.loan_path_to_string(loan_path)).as_slice());
|
||||
}
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ fn report_cannot_move_out_of(bccx: &BorrowckCtxt, move_from: mc::cmt) {
|
||||
bccx.span_err(
|
||||
move_from.span,
|
||||
format!("cannot move out of {}",
|
||||
bccx.cmt_to_str(&*move_from)).as_slice());
|
||||
bccx.cmt_to_string(&*move_from)).as_slice());
|
||||
}
|
||||
|
||||
mc::cat_downcast(ref b) |
|
||||
@ -145,7 +145,7 @@ fn note_move_destination(bccx: &BorrowckCtxt,
|
||||
move_to_span: codemap::Span,
|
||||
pat_ident: &ast::Ident,
|
||||
is_first_note: bool) {
|
||||
let pat_name = pprust::ident_to_str(pat_ident);
|
||||
let pat_name = pprust::ident_to_string(pat_ident);
|
||||
if is_first_note {
|
||||
bccx.span_note(
|
||||
move_to_span,
|
||||
|
@ -418,7 +418,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
pub fn report(&self, err: BckError) {
|
||||
self.span_err(
|
||||
err.span,
|
||||
self.bckerr_to_str(&err).as_slice());
|
||||
self.bckerr_to_string(&err).as_slice());
|
||||
self.note_and_explain_bckerr(err);
|
||||
}
|
||||
|
||||
@ -439,7 +439,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
use_span,
|
||||
format!("{} of possibly uninitialized variable: `{}`",
|
||||
verb,
|
||||
self.loan_path_to_str(lp)).as_slice());
|
||||
self.loan_path_to_string(lp)).as_slice());
|
||||
}
|
||||
_ => {
|
||||
let partially = if lp == moved_lp {""} else {"partially "};
|
||||
@ -448,7 +448,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
format!("{} of {}moved value: `{}`",
|
||||
verb,
|
||||
partially,
|
||||
self.loan_path_to_str(lp)).as_slice());
|
||||
self.loan_path_to_string(lp)).as_slice());
|
||||
}
|
||||
}
|
||||
|
||||
@ -472,7 +472,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
self.tcx.sess.span_note(
|
||||
expr_span,
|
||||
format!("`{}` moved here because it has type `{}`, which is {}",
|
||||
self.loan_path_to_str(moved_lp),
|
||||
self.loan_path_to_string(moved_lp),
|
||||
expr_ty.user_string(self.tcx),
|
||||
suggestion).as_slice());
|
||||
}
|
||||
@ -483,7 +483,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
format!("`{}` moved here because it has type `{}`, \
|
||||
which is moved by default (use `ref` to \
|
||||
override)",
|
||||
self.loan_path_to_str(moved_lp),
|
||||
self.loan_path_to_string(moved_lp),
|
||||
pat_ty.user_string(self.tcx)).as_slice());
|
||||
}
|
||||
|
||||
@ -506,7 +506,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
expr_span,
|
||||
format!("`{}` moved into closure environment here because it \
|
||||
has type `{}`, which is {}",
|
||||
self.loan_path_to_str(moved_lp),
|
||||
self.loan_path_to_string(moved_lp),
|
||||
expr_ty.user_string(self.tcx),
|
||||
suggestion).as_slice());
|
||||
}
|
||||
@ -536,7 +536,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
self.tcx.sess.span_err(
|
||||
span,
|
||||
format!("re-assignment of immutable variable `{}`",
|
||||
self.loan_path_to_str(lp)).as_slice());
|
||||
self.loan_path_to_string(lp)).as_slice());
|
||||
self.tcx.sess.span_note(assign.span, "prior assignment occurs here");
|
||||
}
|
||||
|
||||
@ -552,20 +552,20 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
self.tcx.sess.span_end_note(s, m);
|
||||
}
|
||||
|
||||
pub fn bckerr_to_str(&self, err: &BckError) -> String {
|
||||
pub fn bckerr_to_string(&self, err: &BckError) -> String {
|
||||
match err.code {
|
||||
err_mutbl => {
|
||||
let descr = match opt_loan_path(&err.cmt) {
|
||||
None => {
|
||||
format!("{} {}",
|
||||
err.cmt.mutbl.to_user_str(),
|
||||
self.cmt_to_str(&*err.cmt))
|
||||
self.cmt_to_string(&*err.cmt))
|
||||
}
|
||||
Some(lp) => {
|
||||
format!("{} {} `{}`",
|
||||
err.cmt.mutbl.to_user_str(),
|
||||
self.cmt_to_str(&*err.cmt),
|
||||
self.loan_path_to_str(&*lp))
|
||||
self.cmt_to_string(&*err.cmt),
|
||||
self.loan_path_to_string(&*lp))
|
||||
}
|
||||
};
|
||||
|
||||
@ -589,7 +589,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
let msg = match opt_loan_path(&err.cmt) {
|
||||
None => "borrowed value".to_string(),
|
||||
Some(lp) => {
|
||||
format!("`{}`", self.loan_path_to_str(&*lp))
|
||||
format!("`{}`", self.loan_path_to_string(&*lp))
|
||||
}
|
||||
};
|
||||
format!("{} does not live long enough", msg)
|
||||
@ -597,9 +597,9 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
err_borrowed_pointer_too_short(..) => {
|
||||
let descr = match opt_loan_path(&err.cmt) {
|
||||
Some(lp) => {
|
||||
format!("`{}`", self.loan_path_to_str(&*lp))
|
||||
format!("`{}`", self.loan_path_to_string(&*lp))
|
||||
}
|
||||
None => self.cmt_to_str(&*err.cmt),
|
||||
None => self.cmt_to_string(&*err.cmt),
|
||||
};
|
||||
|
||||
format!("lifetime of {} is too short to guarantee \
|
||||
@ -691,9 +691,9 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
err_borrowed_pointer_too_short(loan_scope, ptr_scope) => {
|
||||
let descr = match opt_loan_path(&err.cmt) {
|
||||
Some(lp) => {
|
||||
format!("`{}`", self.loan_path_to_str(&*lp))
|
||||
format!("`{}`", self.loan_path_to_string(&*lp))
|
||||
}
|
||||
None => self.cmt_to_str(&*err.cmt),
|
||||
None => self.cmt_to_string(&*err.cmt),
|
||||
};
|
||||
note_and_explain_region(
|
||||
self.tcx,
|
||||
@ -710,7 +710,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn append_loan_path_to_str(&self,
|
||||
pub fn append_loan_path_to_string(&self,
|
||||
loan_path: &LoanPath,
|
||||
out: &mut String) {
|
||||
match *loan_path {
|
||||
@ -720,7 +720,7 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
}
|
||||
|
||||
LpExtend(ref lp_base, _, LpInterior(mc::InteriorField(fname))) => {
|
||||
self.append_autoderefd_loan_path_to_str(&**lp_base, out);
|
||||
self.append_autoderefd_loan_path_to_string(&**lp_base, out);
|
||||
match fname {
|
||||
mc::NamedField(fname) => {
|
||||
out.push_char('.');
|
||||
@ -728,24 +728,24 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
}
|
||||
mc::PositionalField(idx) => {
|
||||
out.push_char('#'); // invent a notation here
|
||||
out.push_str(idx.to_str().as_slice());
|
||||
out.push_str(idx.to_string().as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LpExtend(ref lp_base, _, LpInterior(mc::InteriorElement(_))) => {
|
||||
self.append_autoderefd_loan_path_to_str(&**lp_base, out);
|
||||
self.append_autoderefd_loan_path_to_string(&**lp_base, out);
|
||||
out.push_str("[..]");
|
||||
}
|
||||
|
||||
LpExtend(ref lp_base, _, LpDeref(_)) => {
|
||||
out.push_char('*');
|
||||
self.append_loan_path_to_str(&**lp_base, out);
|
||||
self.append_loan_path_to_string(&**lp_base, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn append_autoderefd_loan_path_to_str(&self,
|
||||
pub fn append_autoderefd_loan_path_to_string(&self,
|
||||
loan_path: &LoanPath,
|
||||
out: &mut String) {
|
||||
match *loan_path {
|
||||
@ -753,23 +753,23 @@ impl<'a> BorrowckCtxt<'a> {
|
||||
// For a path like `(*x).f` or `(*x)[3]`, autoderef
|
||||
// rules would normally allow users to omit the `*x`.
|
||||
// So just serialize such paths to `x.f` or x[3]` respectively.
|
||||
self.append_autoderefd_loan_path_to_str(&**lp_base, out)
|
||||
self.append_autoderefd_loan_path_to_string(&**lp_base, out)
|
||||
}
|
||||
|
||||
LpVar(..) | LpUpvar(..) | LpExtend(_, _, LpInterior(..)) => {
|
||||
self.append_loan_path_to_str(loan_path, out)
|
||||
self.append_loan_path_to_string(loan_path, out)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn loan_path_to_str(&self, loan_path: &LoanPath) -> String {
|
||||
pub fn loan_path_to_string(&self, loan_path: &LoanPath) -> String {
|
||||
let mut result = String::new();
|
||||
self.append_loan_path_to_str(loan_path, &mut result);
|
||||
self.append_loan_path_to_string(loan_path, &mut result);
|
||||
result
|
||||
}
|
||||
|
||||
pub fn cmt_to_str(&self, cmt: &mc::cmt_) -> String {
|
||||
self.mc().cmt_to_str(cmt)
|
||||
pub fn cmt_to_string(&self, cmt: &mc::cmt_) -> String {
|
||||
self.mc().cmt_to_string(cmt)
|
||||
}
|
||||
}
|
||||
|
||||
@ -815,11 +815,11 @@ impl Repr for LoanPath {
|
||||
fn repr(&self, tcx: &ty::ctxt) -> String {
|
||||
match self {
|
||||
&LpVar(id) => {
|
||||
format!("$({})", tcx.map.node_to_str(id))
|
||||
format!("$({})", tcx.map.node_to_string(id))
|
||||
}
|
||||
|
||||
&LpUpvar(ty::UpvarId{ var_id, closure_expr_id }) => {
|
||||
let s = tcx.map.node_to_str(var_id);
|
||||
let s = tcx.map.node_to_string(var_id);
|
||||
format!("$({} captured by id={})", s, closure_expr_id)
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ impl<'a> dot::Labeller<'a, Node<'a>, Edge<'a>> for LabelledCFG<'a> {
|
||||
} else if n.data.id == ast::DUMMY_NODE_ID {
|
||||
dot::LabelStr("(dummy_node)".into_maybe_owned())
|
||||
} else {
|
||||
let s = self.ast_map.node_to_str(n.data.id);
|
||||
let s = self.ast_map.node_to_string(n.data.id);
|
||||
// left-aligns the lines
|
||||
let s = replace_newline_with_backslash_l(s);
|
||||
dot::EscStr(s.into_maybe_owned())
|
||||
@ -80,7 +80,7 @@ impl<'a> dot::Labeller<'a, Node<'a>, Edge<'a>> for LabelledCFG<'a> {
|
||||
} else {
|
||||
put_one = true;
|
||||
}
|
||||
let s = self.ast_map.node_to_str(node_id);
|
||||
let s = self.ast_map.node_to_string(node_id);
|
||||
// left-aligns the lines
|
||||
let s = replace_newline_with_backslash_l(s);
|
||||
label = label.append(format!("exiting scope_{} {}",
|
||||
|
@ -108,7 +108,7 @@ fn check_expr(v: &mut CheckCrateVisitor, e: &Expr, is_const: bool) {
|
||||
.span_err(e.span,
|
||||
format!("can not cast to `{}` in a constant \
|
||||
expression",
|
||||
ppaux::ty_to_str(v.tcx, ety)).as_slice())
|
||||
ppaux::ty_to_string(v.tcx, ety)).as_slice())
|
||||
}
|
||||
}
|
||||
ExprPath(ref pth) => {
|
||||
|
@ -22,10 +22,10 @@ use syntax::ast::*;
|
||||
use syntax::ast_util::{is_unguarded, walk_pat};
|
||||
use syntax::codemap::{Span, Spanned, DUMMY_SP};
|
||||
use syntax::owned_slice::OwnedSlice;
|
||||
use syntax::print::pprust::pat_to_str;
|
||||
use syntax::print::pprust::pat_to_string;
|
||||
use syntax::visit;
|
||||
use syntax::visit::{Visitor, FnKind};
|
||||
use util::ppaux::ty_to_str;
|
||||
use util::ppaux::ty_to_string;
|
||||
|
||||
struct Matrix(Vec<Vec<Gc<Pat>>>);
|
||||
|
||||
@ -47,7 +47,7 @@ impl fmt::Show for Matrix {
|
||||
|
||||
let &Matrix(ref m) = self;
|
||||
let pretty_printed_matrix: Vec<Vec<String>> = m.iter().map(|row| {
|
||||
row.iter().map(|&pat| pat_to_str(pat)).collect::<Vec<String>>()
|
||||
row.iter().map(|&pat| pat_to_string(pat)).collect::<Vec<String>>()
|
||||
}).collect();
|
||||
|
||||
let column_count = m.iter().map(|row| row.len()).max().unwrap_or(0u);
|
||||
@ -147,7 +147,7 @@ fn check_expr(cx: &mut MatchCheckCtxt, ex: &Expr) {
|
||||
// We know the type is inhabited, so this must be wrong
|
||||
cx.tcx.sess.span_err(ex.span, format!("non-exhaustive patterns: \
|
||||
type {} is non-empty",
|
||||
ty_to_str(cx.tcx, pat_ty)).as_slice());
|
||||
ty_to_string(cx.tcx, pat_ty)).as_slice());
|
||||
}
|
||||
// If the type *is* empty, it's vacuously exhaustive
|
||||
return;
|
||||
@ -222,7 +222,8 @@ fn check_exhaustive(cx: &MatchCheckCtxt, sp: Span, m: &Matrix) {
|
||||
[] => wild(),
|
||||
_ => unreachable!()
|
||||
};
|
||||
let msg = format!("non-exhaustive patterns: `{0}` not covered", pat_to_str(&*witness));
|
||||
let msg = format!("non-exhaustive patterns: `{0}` not covered",
|
||||
pat_to_string(&*witness));
|
||||
cx.tcx.sess.span_err(sp, msg.as_slice());
|
||||
}
|
||||
NotUseful => {
|
||||
@ -780,7 +781,7 @@ fn check_local(cx: &mut MatchCheckCtxt, loc: &Local) {
|
||||
Some(pat) => {
|
||||
let msg = format!(
|
||||
"refutable pattern in {} binding: `{}` not covered",
|
||||
name, pat_to_str(&*pat)
|
||||
name, pat_to_string(&*pat)
|
||||
);
|
||||
cx.tcx.sess.span_err(loc.pat.span, msg.as_slice());
|
||||
},
|
||||
@ -802,7 +803,7 @@ fn check_fn(cx: &mut MatchCheckCtxt,
|
||||
Some(pat) => {
|
||||
let msg = format!(
|
||||
"refutable pattern in function argument: `{}` not covered",
|
||||
pat_to_str(&*pat)
|
||||
pat_to_string(&*pat)
|
||||
);
|
||||
cx.tcx.sess.span_err(input.pat.span, msg.as_slice());
|
||||
},
|
||||
|
@ -75,7 +75,7 @@ impl<'a> CheckStaticVisitor<'a> {
|
||||
impl<'a> Visitor<bool> for CheckStaticVisitor<'a> {
|
||||
|
||||
fn visit_item(&mut self, i: &ast::Item, _is_const: bool) {
|
||||
debug!("visit_item(item={})", pprust::item_to_str(i));
|
||||
debug!("visit_item(item={})", pprust::item_to_string(i));
|
||||
match i.node {
|
||||
ast::ItemStatic(_, mutability, ref expr) => {
|
||||
match mutability {
|
||||
@ -99,7 +99,7 @@ impl<'a> Visitor<bool> for CheckStaticVisitor<'a> {
|
||||
/// of a static item, this method does nothing but walking
|
||||
/// down through it.
|
||||
fn visit_expr(&mut self, e: &ast::Expr, is_const: bool) {
|
||||
debug!("visit_expr(expr={})", pprust::expr_to_str(e));
|
||||
debug!("visit_expr(expr={})", pprust::expr_to_string(e));
|
||||
|
||||
if !is_const {
|
||||
return visit::walk_expr(self, e, is_const);
|
||||
|
@ -164,18 +164,18 @@ impl<'a, O:DataFlowOperator> pprust::PpAnn for DataFlowContext<'a, O> {
|
||||
let cfgidx = to_cfgidx_or_die(id, &self.nodeid_to_index);
|
||||
let (start, end) = self.compute_id_range_frozen(cfgidx);
|
||||
let on_entry = self.on_entry.slice(start, end);
|
||||
let entry_str = bits_to_str(on_entry);
|
||||
let entry_str = bits_to_string(on_entry);
|
||||
|
||||
let gens = self.gens.slice(start, end);
|
||||
let gens_str = if gens.iter().any(|&u| u != 0) {
|
||||
format!(" gen: {}", bits_to_str(gens))
|
||||
format!(" gen: {}", bits_to_string(gens))
|
||||
} else {
|
||||
"".to_string()
|
||||
};
|
||||
|
||||
let kills = self.kills.slice(start, end);
|
||||
let kills_str = if kills.iter().any(|&u| u != 0) {
|
||||
format!(" kill: {}", bits_to_str(kills))
|
||||
format!(" kill: {}", bits_to_string(kills))
|
||||
} else {
|
||||
"".to_string()
|
||||
};
|
||||
@ -289,7 +289,7 @@ impl<'a, O:DataFlowOperator> DataFlowContext<'a, O> {
|
||||
fn apply_gen_kill(&mut self, cfgidx: CFGIndex, bits: &mut [uint]) {
|
||||
//! Applies the gen and kill sets for `id` to `bits`
|
||||
debug!("{:s} apply_gen_kill(cfgidx={}, bits={}) [before]",
|
||||
self.analysis_name, cfgidx, mut_bits_to_str(bits));
|
||||
self.analysis_name, cfgidx, mut_bits_to_string(bits));
|
||||
let (start, end) = self.compute_id_range(cfgidx);
|
||||
let gens = self.gens.slice(start, end);
|
||||
bitwise(bits, gens, &Union);
|
||||
@ -297,7 +297,7 @@ impl<'a, O:DataFlowOperator> DataFlowContext<'a, O> {
|
||||
bitwise(bits, kills, &Subtract);
|
||||
|
||||
debug!("{:s} apply_gen_kill(cfgidx={}, bits={}) [after]",
|
||||
self.analysis_name, cfgidx, mut_bits_to_str(bits));
|
||||
self.analysis_name, cfgidx, mut_bits_to_string(bits));
|
||||
}
|
||||
|
||||
fn compute_id_range_frozen(&self, cfgidx: CFGIndex) -> (uint, uint) {
|
||||
@ -334,7 +334,7 @@ impl<'a, O:DataFlowOperator> DataFlowContext<'a, O> {
|
||||
let (start, end) = self.compute_id_range_frozen(cfgidx);
|
||||
let on_entry = self.on_entry.slice(start, end);
|
||||
debug!("{:s} each_bit_on_entry_frozen(id={:?}, on_entry={})",
|
||||
self.analysis_name, id, bits_to_str(on_entry));
|
||||
self.analysis_name, id, bits_to_string(on_entry));
|
||||
self.each_bit(on_entry, f)
|
||||
}
|
||||
|
||||
@ -348,7 +348,7 @@ impl<'a, O:DataFlowOperator> DataFlowContext<'a, O> {
|
||||
let (start, end) = self.compute_id_range_frozen(cfgidx);
|
||||
let gens = self.gens.slice(start, end);
|
||||
debug!("{:s} each_gen_bit(id={:?}, gens={})",
|
||||
self.analysis_name, id, bits_to_str(gens));
|
||||
self.analysis_name, id, bits_to_string(gens));
|
||||
self.each_bit(gens, f)
|
||||
}
|
||||
|
||||
@ -426,10 +426,10 @@ impl<'a, O:DataFlowOperator> DataFlowContext<'a, O> {
|
||||
if changed {
|
||||
let bits = self.kills.mut_slice(start, end);
|
||||
debug!("{:s} add_kills_from_flow_exits flow_exit={} bits={} [before]",
|
||||
self.analysis_name, flow_exit, mut_bits_to_str(bits));
|
||||
self.analysis_name, flow_exit, mut_bits_to_string(bits));
|
||||
bits.copy_from(orig_kills.as_slice());
|
||||
debug!("{:s} add_kills_from_flow_exits flow_exit={} bits={} [after]",
|
||||
self.analysis_name, flow_exit, mut_bits_to_str(bits));
|
||||
self.analysis_name, flow_exit, mut_bits_to_string(bits));
|
||||
}
|
||||
true
|
||||
});
|
||||
@ -483,10 +483,10 @@ impl<'a, 'b, O:DataFlowOperator> PropagationContext<'a, 'b, O> {
|
||||
cfg: &cfg::CFG,
|
||||
in_out: &mut [uint]) {
|
||||
debug!("DataFlowContext::walk_cfg(in_out={}) {:s}",
|
||||
bits_to_str(in_out), self.dfcx.analysis_name);
|
||||
bits_to_string(in_out), self.dfcx.analysis_name);
|
||||
cfg.graph.each_node(|node_index, node| {
|
||||
debug!("DataFlowContext::walk_cfg idx={} id={} begin in_out={}",
|
||||
node_index, node.data.id, bits_to_str(in_out));
|
||||
node_index, node.data.id, bits_to_string(in_out));
|
||||
|
||||
let (start, end) = self.dfcx.compute_id_range(node_index);
|
||||
|
||||
@ -526,7 +526,7 @@ impl<'a, 'b, O:DataFlowOperator> PropagationContext<'a, 'b, O> {
|
||||
let source = edge.source();
|
||||
let cfgidx = edge.target();
|
||||
debug!("{:s} propagate_bits_into_entry_set_for(pred_bits={}, {} to {})",
|
||||
self.dfcx.analysis_name, bits_to_str(pred_bits), source, cfgidx);
|
||||
self.dfcx.analysis_name, bits_to_string(pred_bits), source, cfgidx);
|
||||
let (start, end) = self.dfcx.compute_id_range(cfgidx);
|
||||
let changed = {
|
||||
// (scoping mutable borrow of self.dfcx.on_entry)
|
||||
@ -536,17 +536,17 @@ impl<'a, 'b, O:DataFlowOperator> PropagationContext<'a, 'b, O> {
|
||||
if changed {
|
||||
debug!("{:s} changed entry set for {:?} to {}",
|
||||
self.dfcx.analysis_name, cfgidx,
|
||||
bits_to_str(self.dfcx.on_entry.slice(start, end)));
|
||||
bits_to_string(self.dfcx.on_entry.slice(start, end)));
|
||||
self.changed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn mut_bits_to_str(words: &mut [uint]) -> String {
|
||||
bits_to_str(words)
|
||||
fn mut_bits_to_string(words: &mut [uint]) -> String {
|
||||
bits_to_string(words)
|
||||
}
|
||||
|
||||
fn bits_to_str(words: &[uint]) -> String {
|
||||
fn bits_to_string(words: &[uint]) -> String {
|
||||
let mut result = String::new();
|
||||
let mut sep = '[';
|
||||
|
||||
@ -582,7 +582,7 @@ fn bitwise<Op:BitwiseOperator>(out_vec: &mut [uint],
|
||||
|
||||
fn set_bit(words: &mut [uint], bit: uint) -> bool {
|
||||
debug!("set_bit: words={} bit={}",
|
||||
mut_bits_to_str(words), bit_str(bit));
|
||||
mut_bits_to_string(words), bit_str(bit));
|
||||
let word = bit / uint::BITS;
|
||||
let bit_in_word = bit % uint::BITS;
|
||||
let bit_mask = 1 << bit_in_word;
|
||||
|
@ -68,7 +68,7 @@ impl<'a> EffectCheckVisitor<'a> {
|
||||
_ => return
|
||||
};
|
||||
debug!("effect: checking index with base type {}",
|
||||
ppaux::ty_to_str(self.tcx, base_type));
|
||||
ppaux::ty_to_string(self.tcx, base_type));
|
||||
match ty::get(base_type).sty {
|
||||
ty::ty_uniq(ty) | ty::ty_rptr(_, ty::mt{ty, ..}) => match ty::get(ty).sty {
|
||||
ty::ty_str => {
|
||||
@ -147,7 +147,7 @@ impl<'a> Visitor<()> for EffectCheckVisitor<'a> {
|
||||
let method_call = MethodCall::expr(expr.id);
|
||||
let base_type = self.tcx.method_map.borrow().get(&method_call).ty;
|
||||
debug!("effect: method call case, base type is {}",
|
||||
ppaux::ty_to_str(self.tcx, base_type));
|
||||
ppaux::ty_to_string(self.tcx, base_type));
|
||||
if type_is_unsafe_function(base_type) {
|
||||
self.require_unsafe(expr.span,
|
||||
"invocation of unsafe method")
|
||||
@ -156,7 +156,7 @@ impl<'a> Visitor<()> for EffectCheckVisitor<'a> {
|
||||
ast::ExprCall(base, _) => {
|
||||
let base_type = ty::node_id_to_type(self.tcx, base.id);
|
||||
debug!("effect: call case, base type is {}",
|
||||
ppaux::ty_to_str(self.tcx, base_type));
|
||||
ppaux::ty_to_string(self.tcx, base_type));
|
||||
if type_is_unsafe_function(base_type) {
|
||||
self.require_unsafe(expr.span, "call to unsafe function")
|
||||
}
|
||||
@ -164,7 +164,7 @@ impl<'a> Visitor<()> for EffectCheckVisitor<'a> {
|
||||
ast::ExprUnary(ast::UnDeref, base) => {
|
||||
let base_type = ty::node_id_to_type(self.tcx, base.id);
|
||||
debug!("effect: unary case, base type is {}",
|
||||
ppaux::ty_to_str(self.tcx, base_type));
|
||||
ppaux::ty_to_string(self.tcx, base_type));
|
||||
match ty::get(base_type).sty {
|
||||
ty::ty_ptr(_) => {
|
||||
self.require_unsafe(expr.span,
|
||||
|
@ -15,13 +15,13 @@ use middle::subst;
|
||||
use middle::ty;
|
||||
use middle::typeck::{MethodCall, NoAdjustment};
|
||||
use middle::typeck;
|
||||
use util::ppaux::{Repr, ty_to_str};
|
||||
use util::ppaux::{Repr, ty_to_string};
|
||||
use util::ppaux::UserString;
|
||||
|
||||
use syntax::ast::*;
|
||||
use syntax::attr;
|
||||
use syntax::codemap::Span;
|
||||
use syntax::print::pprust::{expr_to_str, ident_to_str};
|
||||
use syntax::print::pprust::{expr_to_string, ident_to_string};
|
||||
use syntax::{visit};
|
||||
use syntax::visit::Visitor;
|
||||
|
||||
@ -126,7 +126,7 @@ fn check_impl_of_trait(cx: &mut Context, it: &Item, trait_ref: &TraitRef, self_t
|
||||
cx.tcx.sess.span_err(self_type.span,
|
||||
format!("the type `{}', which does not fulfill `{}`, cannot implement this \
|
||||
trait",
|
||||
ty_to_str(cx.tcx, self_ty),
|
||||
ty_to_string(cx.tcx, self_ty),
|
||||
missing.user_string(cx.tcx)).as_slice());
|
||||
cx.tcx.sess.span_note(self_type.span,
|
||||
format!("types implementing this trait must fulfill `{}`",
|
||||
@ -246,7 +246,7 @@ fn check_fn(
|
||||
}
|
||||
|
||||
pub fn check_expr(cx: &mut Context, e: &Expr) {
|
||||
debug!("kind::check_expr({})", expr_to_str(e));
|
||||
debug!("kind::check_expr({})", expr_to_string(e));
|
||||
|
||||
// Handle any kind bounds on type parameters
|
||||
check_bounds_on_type_parameters(cx, e);
|
||||
@ -492,7 +492,7 @@ pub fn check_typaram_bounds(cx: &Context,
|
||||
sp,
|
||||
format!("instantiating a type parameter with an incompatible type \
|
||||
`{}`, which does not fulfill `{}`",
|
||||
ty_to_str(cx.tcx, ty),
|
||||
ty_to_string(cx.tcx, ty),
|
||||
missing.user_string(cx.tcx)).as_slice());
|
||||
});
|
||||
}
|
||||
@ -509,14 +509,14 @@ pub fn check_freevar_bounds(cx: &Context, sp: Span, ty: ty::t,
|
||||
format!("cannot implicitly borrow variable of type `{}` in a \
|
||||
bounded stack closure (implicit reference does not \
|
||||
fulfill `{}`)",
|
||||
ty_to_str(cx.tcx, rty),
|
||||
ty_to_string(cx.tcx, rty),
|
||||
missing.user_string(cx.tcx)).as_slice())
|
||||
}
|
||||
None => {
|
||||
cx.tcx.sess.span_err(sp,
|
||||
format!("cannot capture variable of type `{}`, which does \
|
||||
not fulfill `{}`, in a bounded closure",
|
||||
ty_to_str(cx.tcx, ty),
|
||||
ty_to_string(cx.tcx, ty),
|
||||
missing.user_string(cx.tcx)).as_slice())
|
||||
}
|
||||
}
|
||||
@ -533,20 +533,20 @@ pub fn check_trait_cast_bounds(cx: &Context, sp: Span, ty: ty::t,
|
||||
cx.tcx.sess.span_err(sp,
|
||||
format!("cannot pack type `{}`, which does not fulfill \
|
||||
`{}`, as a trait bounded by {}",
|
||||
ty_to_str(cx.tcx, ty), missing.user_string(cx.tcx),
|
||||
ty_to_string(cx.tcx, ty), missing.user_string(cx.tcx),
|
||||
bounds.user_string(cx.tcx)).as_slice());
|
||||
});
|
||||
}
|
||||
|
||||
fn check_copy(cx: &Context, ty: ty::t, sp: Span, reason: &str) {
|
||||
debug!("type_contents({})={}",
|
||||
ty_to_str(cx.tcx, ty),
|
||||
ty::type_contents(cx.tcx, ty).to_str());
|
||||
ty_to_string(cx.tcx, ty),
|
||||
ty::type_contents(cx.tcx, ty).to_string());
|
||||
if ty::type_moves_by_default(cx.tcx, ty) {
|
||||
cx.tcx.sess.span_err(
|
||||
sp,
|
||||
format!("copying a value of non-copyable type `{}`",
|
||||
ty_to_str(cx.tcx, ty)).as_slice());
|
||||
ty_to_string(cx.tcx, ty)).as_slice());
|
||||
cx.tcx.sess.span_note(sp, format!("{}", reason).as_slice());
|
||||
}
|
||||
}
|
||||
@ -558,7 +558,7 @@ pub fn check_static(tcx: &ty::ctxt, ty: ty::t, sp: Span) -> bool {
|
||||
tcx.sess.span_err(sp,
|
||||
format!("value may contain references; \
|
||||
add `'static` bound to `{}`",
|
||||
ty_to_str(tcx, ty)).as_slice());
|
||||
ty_to_string(tcx, ty)).as_slice());
|
||||
}
|
||||
_ => {
|
||||
tcx.sess.span_err(sp, "value may contain references");
|
||||
@ -643,7 +643,7 @@ pub fn check_cast_for_escaping_regions(
|
||||
// source_span,
|
||||
// format!("source contains reference with lifetime \
|
||||
// not found in the target type `{}`",
|
||||
// ty_to_str(cx.tcx, target_ty)));
|
||||
// ty_to_string(cx.tcx, target_ty)));
|
||||
// note_and_explain_region(
|
||||
// cx.tcx, "source data is only valid for ", r, "");
|
||||
// }
|
||||
@ -683,7 +683,7 @@ fn check_sized(tcx: &ty::ctxt, ty: ty::t, name: String, sp: Span) {
|
||||
format!("variable `{}` has dynamically sized type \
|
||||
`{}`",
|
||||
name,
|
||||
ty_to_str(tcx, ty)).as_slice());
|
||||
ty_to_string(tcx, ty)).as_slice());
|
||||
}
|
||||
}
|
||||
|
||||
@ -691,7 +691,7 @@ fn check_sized(tcx: &ty::ctxt, ty: ty::t, name: String, sp: Span) {
|
||||
fn check_pat(cx: &mut Context, pat: &Pat) {
|
||||
let var_name = match pat.node {
|
||||
PatWild => Some("_".to_string()),
|
||||
PatIdent(_, ref path1, _) => Some(ident_to_str(&path1.node).to_string()),
|
||||
PatIdent(_, ref path1, _) => Some(ident_to_string(&path1.node).to_string()),
|
||||
_ => None
|
||||
};
|
||||
|
||||
@ -702,7 +702,7 @@ fn check_pat(cx: &mut Context, pat: &Pat) {
|
||||
match ty {
|
||||
Some(ty) => {
|
||||
debug!("kind: checking sized-ness of variable {}: {}",
|
||||
name, ty_to_str(cx.tcx, *ty));
|
||||
name, ty_to_string(cx.tcx, *ty));
|
||||
check_sized(cx.tcx, *ty, name, pat.span);
|
||||
}
|
||||
None => {} // extern fn args
|
||||
|
@ -121,7 +121,7 @@ use syntax::ast::*;
|
||||
use syntax::codemap::{BytePos, original_sp, Span};
|
||||
use syntax::parse::token::special_idents;
|
||||
use syntax::parse::token;
|
||||
use syntax::print::pprust::{expr_to_str, block_to_str};
|
||||
use syntax::print::pprust::{expr_to_string, block_to_string};
|
||||
use syntax::{visit, ast_util};
|
||||
use syntax::visit::{Visitor, FnKind};
|
||||
|
||||
@ -152,17 +152,17 @@ enum LiveNodeKind {
|
||||
ExitNode
|
||||
}
|
||||
|
||||
fn live_node_kind_to_str(lnk: LiveNodeKind, cx: &ty::ctxt) -> String {
|
||||
fn live_node_kind_to_string(lnk: LiveNodeKind, cx: &ty::ctxt) -> String {
|
||||
let cm = cx.sess.codemap();
|
||||
match lnk {
|
||||
FreeVarNode(s) => {
|
||||
format!("Free var node [{}]", cm.span_to_str(s))
|
||||
format!("Free var node [{}]", cm.span_to_string(s))
|
||||
}
|
||||
ExprNode(s) => {
|
||||
format!("Expr node [{}]", cm.span_to_str(s))
|
||||
format!("Expr node [{}]", cm.span_to_string(s))
|
||||
}
|
||||
VarDefNode(s) => {
|
||||
format!("Var def node [{}]", cm.span_to_str(s))
|
||||
format!("Var def node [{}]", cm.span_to_string(s))
|
||||
}
|
||||
ExitNode => "Exit node".to_string(),
|
||||
}
|
||||
@ -272,8 +272,8 @@ impl<'a> IrMaps<'a> {
|
||||
self.lnks.push(lnk);
|
||||
self.num_live_nodes += 1;
|
||||
|
||||
debug!("{} is of kind {}", ln.to_str(),
|
||||
live_node_kind_to_str(lnk, self.tcx));
|
||||
debug!("{} is of kind {}", ln.to_string(),
|
||||
live_node_kind_to_string(lnk, self.tcx));
|
||||
|
||||
ln
|
||||
}
|
||||
@ -282,7 +282,7 @@ impl<'a> IrMaps<'a> {
|
||||
let ln = self.add_live_node(lnk);
|
||||
self.live_node_map.insert(node_id, ln);
|
||||
|
||||
debug!("{} is node {}", ln.to_str(), node_id);
|
||||
debug!("{} is node {}", ln.to_string(), node_id);
|
||||
}
|
||||
|
||||
fn add_variable(&mut self, vk: VarKind) -> Variable {
|
||||
@ -297,7 +297,7 @@ impl<'a> IrMaps<'a> {
|
||||
ImplicitRet => {}
|
||||
}
|
||||
|
||||
debug!("{} is {:?}", v.to_str(), vk);
|
||||
debug!("{} is {:?}", v.to_string(), vk);
|
||||
|
||||
v
|
||||
}
|
||||
@ -317,7 +317,7 @@ impl<'a> IrMaps<'a> {
|
||||
fn variable_name(&self, var: Variable) -> String {
|
||||
match self.var_kinds.get(var.get()) {
|
||||
&Local(LocalInfo { ident: nm, .. }) | &Arg(_, nm) => {
|
||||
token::get_ident(nm).get().to_str()
|
||||
token::get_ident(nm).get().to_string()
|
||||
},
|
||||
&ImplicitRet => "<implicit-ret>".to_string()
|
||||
}
|
||||
@ -675,7 +675,7 @@ impl<'a> Liveness<'a> {
|
||||
for var_idx in range(0u, self.ir.num_vars) {
|
||||
let idx = node_base_idx + var_idx;
|
||||
if test(idx).is_valid() {
|
||||
try!(write!(wr, " {}", Variable(var_idx).to_str()));
|
||||
try!(write!(wr, " {}", Variable(var_idx).to_string()));
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
@ -717,7 +717,7 @@ impl<'a> Liveness<'a> {
|
||||
self.write_vars(wr, ln, |idx| self.users.get(idx).reader);
|
||||
write!(wr, " writes");
|
||||
self.write_vars(wr, ln, |idx| self.users.get(idx).writer);
|
||||
write!(wr, " precedes {}]", self.successors.get(ln.get()).to_str());
|
||||
write!(wr, " precedes {}]", self.successors.get(ln.get()).to_string());
|
||||
}
|
||||
str::from_utf8(wr.unwrap().as_slice()).unwrap().to_string()
|
||||
}
|
||||
@ -766,7 +766,7 @@ impl<'a> Liveness<'a> {
|
||||
});
|
||||
|
||||
debug!("merge_from_succ(ln={}, succ={}, first_merge={}, changed={})",
|
||||
ln.to_str(), self.ln_str(succ_ln), first_merge, changed);
|
||||
ln.to_string(), self.ln_str(succ_ln), first_merge, changed);
|
||||
return changed;
|
||||
|
||||
fn copy_if_invalid(src: LiveNode, dst: &mut LiveNode) -> bool {
|
||||
@ -787,14 +787,14 @@ impl<'a> Liveness<'a> {
|
||||
self.users.get_mut(idx).reader = invalid_node();
|
||||
self.users.get_mut(idx).writer = invalid_node();
|
||||
|
||||
debug!("{} defines {} (idx={}): {}", writer.to_str(), var.to_str(),
|
||||
debug!("{} defines {} (idx={}): {}", writer.to_string(), var.to_string(),
|
||||
idx, self.ln_str(writer));
|
||||
}
|
||||
|
||||
// Either read, write, or both depending on the acc bitset
|
||||
fn acc(&mut self, ln: LiveNode, var: Variable, acc: uint) {
|
||||
debug!("{} accesses[{:x}] {}: {}",
|
||||
ln.to_str(), acc, var.to_str(), self.ln_str(ln));
|
||||
ln.to_string(), acc, var.to_string(), self.ln_str(ln));
|
||||
|
||||
let idx = self.idx(ln, var);
|
||||
let user = self.users.get_mut(idx);
|
||||
@ -822,7 +822,7 @@ impl<'a> Liveness<'a> {
|
||||
// effectively a return---this only occurs in `for` loops,
|
||||
// where the body is really a closure.
|
||||
|
||||
debug!("compute: using id for block, {}", block_to_str(body));
|
||||
debug!("compute: using id for block, {}", block_to_string(body));
|
||||
|
||||
let exit_ln = self.s.exit_ln;
|
||||
let entry_ln: LiveNode =
|
||||
@ -837,7 +837,7 @@ impl<'a> Liveness<'a> {
|
||||
}
|
||||
body.id
|
||||
},
|
||||
entry_ln.to_str());
|
||||
entry_ln.to_string());
|
||||
|
||||
entry_ln
|
||||
}
|
||||
@ -928,7 +928,7 @@ impl<'a> Liveness<'a> {
|
||||
|
||||
fn propagate_through_expr(&mut self, expr: &Expr, succ: LiveNode)
|
||||
-> LiveNode {
|
||||
debug!("propagate_through_expr: {}", expr_to_str(expr));
|
||||
debug!("propagate_through_expr: {}", expr_to_string(expr));
|
||||
|
||||
match expr.node {
|
||||
// Interesting cases with control flow or which gen/kill
|
||||
@ -942,7 +942,7 @@ impl<'a> Liveness<'a> {
|
||||
}
|
||||
|
||||
ExprFnBlock(_, ref blk) | ExprProc(_, ref blk) => {
|
||||
debug!("{} is an ExprFnBlock or ExprProc", expr_to_str(expr));
|
||||
debug!("{} is an ExprFnBlock or ExprProc", expr_to_string(expr));
|
||||
|
||||
/*
|
||||
The next-node for a break is the successor of the entire
|
||||
@ -1314,7 +1314,7 @@ impl<'a> Liveness<'a> {
|
||||
first_merge = false;
|
||||
}
|
||||
debug!("propagate_through_loop: using id for loop body {} {}",
|
||||
expr.id, block_to_str(body));
|
||||
expr.id, block_to_string(body));
|
||||
|
||||
let cond_ln = self.propagate_through_opt_expr(cond, ln);
|
||||
let body_ln = self.with_loop_nodes(expr.id, succ, ln, |this| {
|
||||
|
@ -66,7 +66,7 @@ use middle::def;
|
||||
use middle::ty;
|
||||
use middle::typeck;
|
||||
use util::nodemap::NodeMap;
|
||||
use util::ppaux::{ty_to_str, Repr};
|
||||
use util::ppaux::{ty_to_string, Repr};
|
||||
|
||||
use syntax::ast::{MutImmutable, MutMutable};
|
||||
use syntax::ast;
|
||||
@ -217,7 +217,7 @@ pub fn deref_kind(tcx: &ty::ctxt, t: ty::t) -> deref_kind {
|
||||
None => {
|
||||
tcx.sess.bug(
|
||||
format!("deref_cat() invoked on non-derefable type {}",
|
||||
ty_to_str(tcx, t)).as_slice());
|
||||
ty_to_string(tcx, t)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -980,7 +980,7 @@ impl<'t,TYPER:Typer> MemCategorizationContext<'t,TYPER> {
|
||||
// get the type of the *subpattern* and use that.
|
||||
|
||||
debug!("cat_pattern: id={} pat={} cmt={}",
|
||||
pat.id, pprust::pat_to_str(pat),
|
||||
pat.id, pprust::pat_to_string(pat),
|
||||
cmt.repr(self.tcx()));
|
||||
|
||||
op(self, cmt.clone(), pat);
|
||||
@ -1105,7 +1105,7 @@ impl<'t,TYPER:Typer> MemCategorizationContext<'t,TYPER> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn cmt_to_str(&self, cmt: &cmt_) -> String {
|
||||
pub fn cmt_to_string(&self, cmt: &cmt_) -> String {
|
||||
match cmt.cat {
|
||||
cat_static_item => {
|
||||
"static item".to_string()
|
||||
@ -1151,10 +1151,10 @@ impl<'t,TYPER:Typer> MemCategorizationContext<'t,TYPER> {
|
||||
"captured outer variable".to_string()
|
||||
}
|
||||
cat_discr(ref cmt, _) => {
|
||||
self.cmt_to_str(&**cmt)
|
||||
self.cmt_to_string(&**cmt)
|
||||
}
|
||||
cat_downcast(ref cmt) => {
|
||||
self.cmt_to_str(&**cmt)
|
||||
self.cmt_to_string(&**cmt)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1311,7 +1311,7 @@ impl Repr for InteriorKind {
|
||||
fn repr(&self, _tcx: &ty::ctxt) -> String {
|
||||
match *self {
|
||||
InteriorField(NamedField(fld)) => {
|
||||
token::get_name(fld).get().to_str()
|
||||
token::get_name(fld).get().to_string()
|
||||
}
|
||||
InteriorField(PositionalField(i)) => format!("#{:?}", i),
|
||||
InteriorElement(_) => "[]".to_string(),
|
||||
|
@ -375,7 +375,7 @@ enum FieldName {
|
||||
impl<'a> PrivacyVisitor<'a> {
|
||||
// used when debugging
|
||||
fn nodestr(&self, id: ast::NodeId) -> String {
|
||||
self.tcx.map.node_to_str(id).to_string()
|
||||
self.tcx.map.node_to_string(id).to_string()
|
||||
}
|
||||
|
||||
// Determines whether the given definition is public from the point of view
|
||||
@ -423,7 +423,7 @@ impl<'a> PrivacyVisitor<'a> {
|
||||
}
|
||||
|
||||
debug!("privacy - local {} not public all the way down",
|
||||
self.tcx.map.node_to_str(did.node));
|
||||
self.tcx.map.node_to_string(did.node));
|
||||
// return quickly for things in the same module
|
||||
if self.parents.find(&did.node) == self.parents.find(&self.curitem) {
|
||||
debug!("privacy - same parent, we're done here");
|
||||
|
@ -336,7 +336,7 @@ impl<'a> ReachableContext<'a> {
|
||||
.bug(format!("found unexpected thingy in worklist: {}",
|
||||
self.tcx
|
||||
.map
|
||||
.node_to_str(search_item)).as_slice())
|
||||
.node_to_string(search_item)).as_slice())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -821,7 +821,7 @@ fn resolve_fn(visitor: &mut RegionResolutionVisitor,
|
||||
body.id={}, \
|
||||
cx.parent={})",
|
||||
id,
|
||||
visitor.sess.codemap().span_to_str(sp),
|
||||
visitor.sess.codemap().span_to_string(sp),
|
||||
body.id,
|
||||
cx.parent);
|
||||
|
||||
|
@ -790,7 +790,7 @@ impl PrimitiveTypeTable {
|
||||
}
|
||||
|
||||
|
||||
fn namespace_error_to_str(ns: NamespaceError) -> &'static str {
|
||||
fn namespace_error_to_string(ns: NamespaceError) -> &'static str {
|
||||
match ns {
|
||||
NoError => "",
|
||||
ModuleError | TypeError => "type or module",
|
||||
@ -1071,14 +1071,14 @@ impl<'a> Resolver<'a> {
|
||||
let ns = ns.unwrap();
|
||||
self.resolve_error(sp,
|
||||
format!("duplicate definition of {} `{}`",
|
||||
namespace_error_to_str(duplicate_type),
|
||||
namespace_error_to_string(duplicate_type),
|
||||
token::get_ident(name)).as_slice());
|
||||
{
|
||||
let r = child.span_for_namespace(ns);
|
||||
for sp in r.iter() {
|
||||
self.session.span_note(*sp,
|
||||
format!("first definition of {} `{}` here",
|
||||
namespace_error_to_str(duplicate_type),
|
||||
namespace_error_to_string(duplicate_type),
|
||||
token::get_ident(name)).as_slice());
|
||||
}
|
||||
}
|
||||
@ -1508,7 +1508,7 @@ impl<'a> Resolver<'a> {
|
||||
false,
|
||||
true));
|
||||
debug!("(build reduced graph for item) found extern `{}`",
|
||||
self.module_to_str(&*external_module));
|
||||
self.module_to_string(&*external_module));
|
||||
parent.module().external_module_children.borrow_mut()
|
||||
.insert(name.name, external_module.clone());
|
||||
self.build_reduced_graph_for_external_crate(external_module);
|
||||
@ -1862,7 +1862,7 @@ impl<'a> Resolver<'a> {
|
||||
/// Builds the reduced graph rooted at the given external module.
|
||||
fn populate_external_module(&mut self, module: Rc<Module>) {
|
||||
debug!("(populating external module) attempting to populate {}",
|
||||
self.module_to_str(&*module));
|
||||
self.module_to_string(&*module));
|
||||
|
||||
let def_id = match module.def_id.get() {
|
||||
None => {
|
||||
@ -1930,7 +1930,7 @@ impl<'a> Resolver<'a> {
|
||||
SingleImport(target, _) => {
|
||||
debug!("(building import directive) building import \
|
||||
directive: {}::{}",
|
||||
self.idents_to_str(module_.imports.borrow().last().unwrap()
|
||||
self.idents_to_string(module_.imports.borrow().last().unwrap()
|
||||
.module_path.as_slice()),
|
||||
token::get_ident(target));
|
||||
|
||||
@ -2003,7 +2003,7 @@ impl<'a> Resolver<'a> {
|
||||
/// submodules.
|
||||
fn resolve_imports_for_module_subtree(&mut self, module_: Rc<Module>) {
|
||||
debug!("(resolving imports for module subtree) resolving {}",
|
||||
self.module_to_str(&*module_));
|
||||
self.module_to_string(&*module_));
|
||||
let orig_module = replace(&mut self.current_module, module_.clone());
|
||||
self.resolve_imports_for_module(module_.clone());
|
||||
self.current_module = orig_module;
|
||||
@ -2030,7 +2030,7 @@ impl<'a> Resolver<'a> {
|
||||
if module.all_imports_resolved() {
|
||||
debug!("(resolving imports for module) all imports resolved for \
|
||||
{}",
|
||||
self.module_to_str(&*module));
|
||||
self.module_to_string(&*module));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2047,7 +2047,7 @@ impl<'a> Resolver<'a> {
|
||||
None => (import_directive.span, String::new())
|
||||
};
|
||||
let msg = format!("unresolved import `{}`{}",
|
||||
self.import_path_to_str(
|
||||
self.import_path_to_string(
|
||||
import_directive.module_path
|
||||
.as_slice(),
|
||||
import_directive.subclass),
|
||||
@ -2063,7 +2063,7 @@ impl<'a> Resolver<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
fn idents_to_str(&self, idents: &[Ident]) -> String {
|
||||
fn idents_to_string(&self, idents: &[Ident]) -> String {
|
||||
let mut first = true;
|
||||
let mut result = String::new();
|
||||
for ident in idents.iter() {
|
||||
@ -2077,15 +2077,15 @@ impl<'a> Resolver<'a> {
|
||||
result
|
||||
}
|
||||
|
||||
fn path_idents_to_str(&self, path: &Path) -> String {
|
||||
fn path_idents_to_string(&self, path: &Path) -> String {
|
||||
let identifiers: Vec<ast::Ident> = path.segments
|
||||
.iter()
|
||||
.map(|seg| seg.identifier)
|
||||
.collect();
|
||||
self.idents_to_str(identifiers.as_slice())
|
||||
self.idents_to_string(identifiers.as_slice())
|
||||
}
|
||||
|
||||
fn import_directive_subclass_to_str(&mut self,
|
||||
fn import_directive_subclass_to_string(&mut self,
|
||||
subclass: ImportDirectiveSubclass)
|
||||
-> String {
|
||||
match subclass {
|
||||
@ -2096,16 +2096,16 @@ impl<'a> Resolver<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
fn import_path_to_str(&mut self,
|
||||
fn import_path_to_string(&mut self,
|
||||
idents: &[Ident],
|
||||
subclass: ImportDirectiveSubclass)
|
||||
-> String {
|
||||
if idents.is_empty() {
|
||||
self.import_directive_subclass_to_str(subclass)
|
||||
self.import_directive_subclass_to_string(subclass)
|
||||
} else {
|
||||
(format!("{}::{}",
|
||||
self.idents_to_str(idents),
|
||||
self.import_directive_subclass_to_str(
|
||||
self.idents_to_string(idents),
|
||||
self.import_directive_subclass_to_string(
|
||||
subclass))).to_string()
|
||||
}
|
||||
}
|
||||
@ -2124,8 +2124,8 @@ impl<'a> Resolver<'a> {
|
||||
|
||||
debug!("(resolving import for module) resolving import `{}::...` in \
|
||||
`{}`",
|
||||
self.idents_to_str(module_path.as_slice()),
|
||||
self.module_to_str(&*module_));
|
||||
self.idents_to_string(module_path.as_slice()),
|
||||
self.module_to_string(&*module_));
|
||||
|
||||
// First, resolve the module path for the directive, if necessary.
|
||||
let container = if module_path.len() == 0 {
|
||||
@ -2231,9 +2231,9 @@ impl<'a> Resolver<'a> {
|
||||
debug!("(resolving single import) resolving `{}` = `{}::{}` from \
|
||||
`{}` id {}, last private {:?}",
|
||||
token::get_ident(target),
|
||||
self.module_to_str(&*containing_module),
|
||||
self.module_to_string(&*containing_module),
|
||||
token::get_ident(source),
|
||||
self.module_to_str(module_),
|
||||
self.module_to_string(module_),
|
||||
directive.id,
|
||||
lp);
|
||||
|
||||
@ -2420,7 +2420,7 @@ impl<'a> Resolver<'a> {
|
||||
if value_result.is_unbound() && type_result.is_unbound() {
|
||||
let msg = format!("There is no `{}` in `{}`",
|
||||
token::get_ident(source),
|
||||
self.module_to_str(&*containing_module));
|
||||
self.module_to_string(&*containing_module));
|
||||
return Failed(Some((directive.span, msg)));
|
||||
}
|
||||
let value_used_public = value_used_reexport || value_used_public;
|
||||
@ -2494,7 +2494,7 @@ impl<'a> Resolver<'a> {
|
||||
debug!("(resolving glob import) writing module resolution \
|
||||
{:?} into `{}`",
|
||||
target_import_resolution.type_target.is_none(),
|
||||
self.module_to_str(module_));
|
||||
self.module_to_string(module_));
|
||||
|
||||
if !target_import_resolution.is_public {
|
||||
debug!("(resolving glob import) nevermind, just kidding");
|
||||
@ -2590,9 +2590,9 @@ impl<'a> Resolver<'a> {
|
||||
|
||||
debug!("(resolving glob import) writing resolution `{}` in `{}` \
|
||||
to `{}`",
|
||||
token::get_name(name).get().to_str(),
|
||||
self.module_to_str(&*containing_module),
|
||||
self.module_to_str(module_));
|
||||
token::get_name(name).get().to_string(),
|
||||
self.module_to_string(&*containing_module),
|
||||
self.module_to_string(module_));
|
||||
|
||||
// Merge the child item into the import resolution.
|
||||
if name_bindings.defined_in_public_namespace(ValueNS) {
|
||||
@ -2652,7 +2652,7 @@ impl<'a> Resolver<'a> {
|
||||
false) {
|
||||
Failed(None) => {
|
||||
let segment_name = token::get_ident(name);
|
||||
let module_name = self.module_to_str(&*search_module);
|
||||
let module_name = self.module_to_string(&*search_module);
|
||||
let mut span = span;
|
||||
let msg = if "???" == module_name.as_slice() {
|
||||
span.hi = span.lo + Pos::from_uint(segment_name.get().len());
|
||||
@ -2660,10 +2660,10 @@ impl<'a> Resolver<'a> {
|
||||
match search_parent_externals(name.name,
|
||||
&self.current_module) {
|
||||
Some(module) => {
|
||||
let path_str = self.idents_to_str(module_path);
|
||||
let target_mod_str = self.module_to_str(&*module);
|
||||
let path_str = self.idents_to_string(module_path);
|
||||
let target_mod_str = self.module_to_string(&*module);
|
||||
let current_mod_str =
|
||||
self.module_to_str(&*self.current_module);
|
||||
self.module_to_string(&*self.current_module);
|
||||
|
||||
let prefix = if target_mod_str == current_mod_str {
|
||||
"self::".to_string()
|
||||
@ -2771,8 +2771,8 @@ impl<'a> Resolver<'a> {
|
||||
|
||||
debug!("(resolving module path for import) processing `{}` rooted at \
|
||||
`{}`",
|
||||
self.idents_to_str(module_path),
|
||||
self.module_to_str(&*module_));
|
||||
self.idents_to_string(module_path),
|
||||
self.module_to_string(&*module_));
|
||||
|
||||
// Resolve the module prefix, if any.
|
||||
let module_prefix_result = self.resolve_module_prefix(module_.clone(),
|
||||
@ -2783,7 +2783,7 @@ impl<'a> Resolver<'a> {
|
||||
let last_private;
|
||||
match module_prefix_result {
|
||||
Failed(None) => {
|
||||
let mpath = self.idents_to_str(module_path);
|
||||
let mpath = self.idents_to_string(module_path);
|
||||
let mpath = mpath.as_slice();
|
||||
match mpath.rfind(':') {
|
||||
Some(idx) => {
|
||||
@ -2865,7 +2865,7 @@ impl<'a> Resolver<'a> {
|
||||
namespace {:?} in `{}`",
|
||||
token::get_ident(name),
|
||||
namespace,
|
||||
self.module_to_str(&*module_));
|
||||
self.module_to_string(&*module_));
|
||||
|
||||
// The current module node is handled specially. First, check for
|
||||
// its immediate children.
|
||||
@ -3098,7 +3098,7 @@ impl<'a> Resolver<'a> {
|
||||
break
|
||||
}
|
||||
debug!("(resolving module prefix) resolving `super` at {}",
|
||||
self.module_to_str(&*containing_module));
|
||||
self.module_to_string(&*containing_module));
|
||||
match self.get_nearest_normal_module_parent(containing_module) {
|
||||
None => return Failed(None),
|
||||
Some(new_module) => {
|
||||
@ -3109,7 +3109,7 @@ impl<'a> Resolver<'a> {
|
||||
}
|
||||
|
||||
debug!("(resolving module prefix) finished resolving prefix at {}",
|
||||
self.module_to_str(&*containing_module));
|
||||
self.module_to_string(&*containing_module));
|
||||
|
||||
return Success(PrefixFound(containing_module, i));
|
||||
}
|
||||
@ -3129,7 +3129,7 @@ impl<'a> Resolver<'a> {
|
||||
-> ResolveResult<(Target, bool)> {
|
||||
debug!("(resolving name in module) resolving `{}` in `{}`",
|
||||
token::get_name(name).get(),
|
||||
self.module_to_str(&*module_));
|
||||
self.module_to_string(&*module_));
|
||||
|
||||
// First, check the direct children of the module.
|
||||
self.populate_module_if_necessary(&module_);
|
||||
@ -3262,19 +3262,19 @@ impl<'a> Resolver<'a> {
|
||||
// OK. Continue.
|
||||
debug!("(recording exports for module subtree) recording \
|
||||
exports for local module `{}`",
|
||||
self.module_to_str(&*module_));
|
||||
self.module_to_string(&*module_));
|
||||
}
|
||||
None => {
|
||||
// Record exports for the root module.
|
||||
debug!("(recording exports for module subtree) recording \
|
||||
exports for root module `{}`",
|
||||
self.module_to_str(&*module_));
|
||||
self.module_to_string(&*module_));
|
||||
}
|
||||
Some(_) => {
|
||||
// Bail out.
|
||||
debug!("(recording exports for module subtree) not recording \
|
||||
exports for `{}`",
|
||||
self.module_to_str(&*module_));
|
||||
self.module_to_string(&*module_));
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -3390,7 +3390,7 @@ impl<'a> Resolver<'a> {
|
||||
None => {
|
||||
debug!("!!! (with scope) didn't find `{}` in `{}`",
|
||||
token::get_ident(name),
|
||||
self.module_to_str(&*orig_module));
|
||||
self.module_to_string(&*orig_module));
|
||||
}
|
||||
Some(name_bindings) => {
|
||||
match (*name_bindings).get_module_if_available() {
|
||||
@ -3398,7 +3398,7 @@ impl<'a> Resolver<'a> {
|
||||
debug!("!!! (with scope) didn't find module \
|
||||
for `{}` in `{}`",
|
||||
token::get_ident(name),
|
||||
self.module_to_str(&*orig_module));
|
||||
self.module_to_string(&*orig_module));
|
||||
}
|
||||
Some(module_) => {
|
||||
self.current_module = module_;
|
||||
@ -3892,7 +3892,7 @@ impl<'a> Resolver<'a> {
|
||||
reference_type: TraitReferenceType) {
|
||||
match self.resolve_path(id, &trait_reference.path, TypeNS, true) {
|
||||
None => {
|
||||
let path_str = self.path_idents_to_str(&trait_reference.path);
|
||||
let path_str = self.path_idents_to_string(&trait_reference.path);
|
||||
let usage_str = match reference_type {
|
||||
TraitBoundingTypeParameter => "bound type parameter with",
|
||||
TraitImplementation => "implement",
|
||||
@ -3911,7 +3911,7 @@ impl<'a> Resolver<'a> {
|
||||
(def, _) => {
|
||||
self.resolve_error(trait_reference.path.span,
|
||||
format!("`{}` is not a trait",
|
||||
self.path_idents_to_str(
|
||||
self.path_idents_to_string(
|
||||
&trait_reference.path)));
|
||||
|
||||
// If it's a typedef, give a note
|
||||
@ -3959,7 +3959,7 @@ impl<'a> Resolver<'a> {
|
||||
.identifier),
|
||||
def);
|
||||
debug!("(resolving struct) writing resolution for `{}` (id {})",
|
||||
this.path_idents_to_str(path),
|
||||
this.path_idents_to_string(path),
|
||||
path_id);
|
||||
this.record_def(path_id, (def, lp));
|
||||
}
|
||||
@ -4071,7 +4071,7 @@ impl<'a> Resolver<'a> {
|
||||
let method_name = method.ident.name;
|
||||
|
||||
if self.method_map.borrow().find(&(method_name, did)).is_none() {
|
||||
let path_str = self.path_idents_to_str(&trait_ref.path);
|
||||
let path_str = self.path_idents_to_string(&trait_ref.path);
|
||||
self.resolve_error(method.span,
|
||||
format!("method `{}` is not a member of trait `{}`",
|
||||
token::get_name(method_name),
|
||||
@ -4281,13 +4281,13 @@ impl<'a> Resolver<'a> {
|
||||
// Write the result into the def map.
|
||||
debug!("(resolving type) writing resolution for `{}` \
|
||||
(id {})",
|
||||
self.path_idents_to_str(path),
|
||||
self.path_idents_to_string(path),
|
||||
path_id);
|
||||
self.record_def(path_id, def);
|
||||
}
|
||||
None => {
|
||||
let msg = format!("use of undeclared type name `{}`",
|
||||
self.path_idents_to_str(path));
|
||||
self.path_idents_to_string(path));
|
||||
self.resolve_error(ty.span, msg.as_slice());
|
||||
}
|
||||
}
|
||||
@ -4488,7 +4488,7 @@ impl<'a> Resolver<'a> {
|
||||
debug!("(resolving pattern) didn't find struct \
|
||||
def: {:?}", result);
|
||||
let msg = format!("`{}` does not name a structure",
|
||||
self.path_idents_to_str(path));
|
||||
self.path_idents_to_string(path));
|
||||
self.resolve_error(path.span, msg.as_slice());
|
||||
}
|
||||
}
|
||||
@ -4718,7 +4718,7 @@ impl<'a> Resolver<'a> {
|
||||
Some((span, msg)) => (span, msg),
|
||||
None => {
|
||||
let msg = format!("Use of undeclared module `{}`",
|
||||
self.idents_to_str(
|
||||
self.idents_to_string(
|
||||
module_path_idents.as_slice()));
|
||||
(path.span, msg)
|
||||
}
|
||||
@ -4794,7 +4794,7 @@ impl<'a> Resolver<'a> {
|
||||
Some((span, msg)) => (span, msg),
|
||||
None => {
|
||||
let msg = format!("Use of undeclared module `::{}`",
|
||||
self.idents_to_str(
|
||||
self.idents_to_string(
|
||||
module_path_idents.as_slice()));
|
||||
(path.span, msg)
|
||||
}
|
||||
@ -4999,7 +4999,7 @@ impl<'a> Resolver<'a> {
|
||||
match get_module(self, path.span, ident_path.as_slice()) {
|
||||
Some(module) => match module.children.borrow().find(&name) {
|
||||
Some(binding) => {
|
||||
let p_str = self.path_idents_to_str(&path);
|
||||
let p_str = self.path_idents_to_string(&path);
|
||||
match binding.def_for_namespace(ValueNS) {
|
||||
Some(DefStaticMethod(_, provenance, _)) => {
|
||||
match provenance {
|
||||
@ -5021,7 +5021,7 @@ impl<'a> Resolver<'a> {
|
||||
let method_map = self.method_map.borrow();
|
||||
match self.current_trait_ref {
|
||||
Some((did, ref trait_ref)) => {
|
||||
let path_str = self.path_idents_to_str(&trait_ref.path);
|
||||
let path_str = self.path_idents_to_string(&trait_ref.path);
|
||||
|
||||
match method_map.find(&(name, did)) {
|
||||
Some(&SelfStatic) => return StaticTraitMethod(path_str),
|
||||
@ -5094,7 +5094,7 @@ impl<'a> Resolver<'a> {
|
||||
Some(def) => {
|
||||
// Write the result into the def map.
|
||||
debug!("(resolving expr) resolved `{}`",
|
||||
self.path_idents_to_str(path));
|
||||
self.path_idents_to_string(path));
|
||||
|
||||
// First-class methods are not supported yet; error
|
||||
// out here.
|
||||
@ -5114,7 +5114,7 @@ impl<'a> Resolver<'a> {
|
||||
self.record_def(expr.id, def);
|
||||
}
|
||||
None => {
|
||||
let wrong_name = self.path_idents_to_str(path);
|
||||
let wrong_name = self.path_idents_to_string(path);
|
||||
// Be helpful if the name refers to a struct
|
||||
// (The pattern matching def_tys where the id is in self.structs
|
||||
// matches on regular structs while excluding tuple- and enum-like
|
||||
@ -5210,7 +5210,7 @@ impl<'a> Resolver<'a> {
|
||||
debug!("(resolving expression) didn't find struct \
|
||||
def: {:?}", result);
|
||||
let msg = format!("`{}` does not name a structure",
|
||||
self.path_idents_to_str(path));
|
||||
self.path_idents_to_string(path));
|
||||
self.resolve_error(path.span, msg.as_slice());
|
||||
}
|
||||
}
|
||||
@ -5510,7 +5510,7 @@ impl<'a> Resolver<'a> {
|
||||
//
|
||||
|
||||
/// A somewhat inefficient routine to obtain the name of a module.
|
||||
fn module_to_str(&self, module: &Module) -> String {
|
||||
fn module_to_string(&self, module: &Module) -> String {
|
||||
let mut idents = Vec::new();
|
||||
|
||||
fn collect_mod(idents: &mut Vec<ast::Ident>, module: &Module) {
|
||||
@ -5531,14 +5531,14 @@ impl<'a> Resolver<'a> {
|
||||
if idents.len() == 0 {
|
||||
return "???".to_string();
|
||||
}
|
||||
self.idents_to_str(idents.move_iter().rev()
|
||||
self.idents_to_string(idents.move_iter().rev()
|
||||
.collect::<Vec<ast::Ident>>()
|
||||
.as_slice())
|
||||
}
|
||||
|
||||
#[allow(dead_code)] // useful for debugging
|
||||
fn dump_module(&mut self, module_: Rc<Module>) {
|
||||
debug!("Dump of module `{}`:", self.module_to_str(&*module_));
|
||||
debug!("Dump of module `{}`:", self.module_to_string(&*module_));
|
||||
|
||||
debug!("Children:");
|
||||
self.populate_module_if_necessary(&module_);
|
||||
|
@ -24,7 +24,7 @@ use syntax::codemap::Span;
|
||||
use syntax::owned_slice::OwnedSlice;
|
||||
use syntax::parse::token::special_idents;
|
||||
use syntax::parse::token;
|
||||
use syntax::print::pprust::{lifetime_to_str};
|
||||
use syntax::print::pprust::{lifetime_to_string};
|
||||
use syntax::visit;
|
||||
use syntax::visit::Visitor;
|
||||
use util::nodemap::NodeMap;
|
||||
@ -372,7 +372,7 @@ impl<'a> LifetimeContext<'a> {
|
||||
}
|
||||
|
||||
debug!("lifetime_ref={} id={} resolved to {:?}",
|
||||
lifetime_to_str(lifetime_ref),
|
||||
lifetime_to_string(lifetime_ref),
|
||||
lifetime_ref.id,
|
||||
def);
|
||||
self.named_region_map.insert(lifetime_ref.id, def);
|
||||
|
@ -51,7 +51,7 @@ use syntax::parse::token;
|
||||
use syntax::parse::token::{get_ident,keywords};
|
||||
use syntax::visit;
|
||||
use syntax::visit::Visitor;
|
||||
use syntax::print::pprust::{path_to_str,ty_to_str};
|
||||
use syntax::print::pprust::{path_to_string,ty_to_string};
|
||||
|
||||
use middle::save::span_utils::SpanUtils;
|
||||
use middle::save::recorder::Recorder;
|
||||
@ -108,7 +108,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
if spans.len() < path.segments.len() {
|
||||
error!("Mis-calculated spans for path '{}'. \
|
||||
Found {} spans, expected {}. Found spans:",
|
||||
path_to_str(path), spans.len(), path.segments.len());
|
||||
path_to_string(path), spans.len(), path.segments.len());
|
||||
for s in spans.iter() {
|
||||
let loc = self.sess.codemap().lookup_char_pos(s.lo);
|
||||
error!(" '{}' in {}, line {}",
|
||||
@ -126,7 +126,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
let sub_path = ast::Path{span: *span, // span for the last segment
|
||||
global: path.global,
|
||||
segments: segs};
|
||||
let qualname = path_to_str(&sub_path);
|
||||
let qualname = path_to_string(&sub_path);
|
||||
result.push((*span, qualname));
|
||||
segs = sub_path.segments;
|
||||
}
|
||||
@ -249,7 +249,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
self.collecting = false;
|
||||
let span_utils = self.span;
|
||||
for &(id, ref p, _, _) in self.collected_paths.iter() {
|
||||
let typ = ppaux::ty_to_str(&self.analysis.ty_cx,
|
||||
let typ = ppaux::ty_to_string(&self.analysis.ty_cx,
|
||||
*self.analysis.ty_cx.node_types.borrow().get(&(id as uint)));
|
||||
// get the span only for the name of the variable (I hope the path is only ever a
|
||||
// variable name, but who knows?)
|
||||
@ -257,7 +257,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
span_utils.span_for_last_ident(p.span),
|
||||
id,
|
||||
qualname,
|
||||
path_to_str(p).as_slice(),
|
||||
path_to_string(p).as_slice(),
|
||||
typ.as_slice());
|
||||
}
|
||||
self.collected_paths.clear();
|
||||
@ -280,7 +280,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
match item.node {
|
||||
ast::ItemImpl(_, _, ty, _) => {
|
||||
let mut result = String::from_str("<");
|
||||
result.push_str(ty_to_str(&*ty).as_slice());
|
||||
result.push_str(ty_to_string(&*ty).as_slice());
|
||||
|
||||
match ty::trait_of_method(&self.analysis.ty_cx,
|
||||
ast_util::local_def(method.id)) {
|
||||
@ -400,7 +400,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
ast::NamedField(ident, _) => {
|
||||
let name = get_ident(ident);
|
||||
let qualname = format!("{}::{}", qualname, name);
|
||||
let typ = ppaux::ty_to_str(&self.analysis.ty_cx,
|
||||
let typ = ppaux::ty_to_string(&self.analysis.ty_cx,
|
||||
*self.analysis.ty_cx.node_types.borrow().get(&(field.node.id as uint)));
|
||||
match self.span.sub_span_before_token(field.span, token::COLON) {
|
||||
Some(sub_span) => self.fmt.field_str(field.span,
|
||||
@ -452,7 +452,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
decl: ast::P<ast::FnDecl>,
|
||||
ty_params: &ast::Generics,
|
||||
body: ast::P<ast::Block>) {
|
||||
let qualname = self.analysis.ty_cx.map.path_to_str(item.id);
|
||||
let qualname = self.analysis.ty_cx.map.path_to_string(item.id);
|
||||
|
||||
let sub_span = self.span.sub_span_after_keyword(item.span, keywords::Fn);
|
||||
self.fmt.fn_str(item.span,
|
||||
@ -482,7 +482,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
mt: ast::Mutability,
|
||||
expr: &ast::Expr)
|
||||
{
|
||||
let qualname = self.analysis.ty_cx.map.path_to_str(item.id);
|
||||
let qualname = self.analysis.ty_cx.map.path_to_string(item.id);
|
||||
|
||||
// If the variable is immutable, save the initialising expression.
|
||||
let value = match mt {
|
||||
@ -497,7 +497,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
get_ident(item.ident).get(),
|
||||
qualname.as_slice(),
|
||||
value.as_slice(),
|
||||
ty_to_str(&*typ).as_slice(),
|
||||
ty_to_string(&*typ).as_slice(),
|
||||
e.cur_scope);
|
||||
|
||||
// walk type and init value
|
||||
@ -510,7 +510,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
e: DxrVisitorEnv,
|
||||
def: &ast::StructDef,
|
||||
ty_params: &ast::Generics) {
|
||||
let qualname = self.analysis.ty_cx.map.path_to_str(item.id);
|
||||
let qualname = self.analysis.ty_cx.map.path_to_string(item.id);
|
||||
|
||||
let ctor_id = match def.ctor_id {
|
||||
Some(node_id) => node_id,
|
||||
@ -538,7 +538,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
e: DxrVisitorEnv,
|
||||
enum_definition: &ast::EnumDef,
|
||||
ty_params: &ast::Generics) {
|
||||
let qualname = self.analysis.ty_cx.map.path_to_str(item.id);
|
||||
let qualname = self.analysis.ty_cx.map.path_to_string(item.id);
|
||||
match self.span.sub_span_after_keyword(item.span, keywords::Enum) {
|
||||
Some(sub_span) => self.fmt.enum_str(item.span,
|
||||
Some(sub_span),
|
||||
@ -639,7 +639,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
generics: &ast::Generics,
|
||||
trait_refs: &Vec<ast::TraitRef>,
|
||||
methods: &Vec<ast::TraitMethod>) {
|
||||
let qualname = self.analysis.ty_cx.map.path_to_str(item.id);
|
||||
let qualname = self.analysis.ty_cx.map.path_to_string(item.id);
|
||||
|
||||
let sub_span = self.span.sub_span_after_keyword(item.span, keywords::Trait);
|
||||
self.fmt.trait_str(item.span,
|
||||
@ -678,7 +678,7 @@ impl <'l> DxrVisitor<'l> {
|
||||
item: &ast::Item, // The module in question, represented as an item.
|
||||
e: DxrVisitorEnv,
|
||||
m: &ast::Mod) {
|
||||
let qualname = self.analysis.ty_cx.map.path_to_str(item.id);
|
||||
let qualname = self.analysis.ty_cx.map.path_to_string(item.id);
|
||||
|
||||
let cm = self.sess.codemap();
|
||||
let filename = cm.span_to_filename(m.inner);
|
||||
@ -971,8 +971,8 @@ impl<'l> Visitor<DxrVisitorEnv> for DxrVisitor<'l> {
|
||||
self.process_trait(item, e, generics, trait_refs, methods),
|
||||
ast::ItemMod(ref m) => self.process_mod(item, e, m),
|
||||
ast::ItemTy(ty, ref ty_params) => {
|
||||
let qualname = self.analysis.ty_cx.map.path_to_str(item.id);
|
||||
let value = ty_to_str(&*ty);
|
||||
let qualname = self.analysis.ty_cx.map.path_to_string(item.id);
|
||||
let value = ty_to_string(&*ty);
|
||||
let sub_span = self.span.sub_span_after_keyword(item.span, keywords::Type);
|
||||
self.fmt.typedef_str(item.span,
|
||||
sub_span,
|
||||
@ -1231,7 +1231,7 @@ impl<'l> Visitor<DxrVisitorEnv> for DxrVisitor<'l> {
|
||||
return
|
||||
}
|
||||
|
||||
let id = String::from_str("$").append(ex.id.to_str().as_slice());
|
||||
let id = String::from_str("$").append(ex.id.to_string().as_slice());
|
||||
self.process_formals(&decl.inputs, id.as_slice(), e);
|
||||
|
||||
// walk arg and return types
|
||||
@ -1288,7 +1288,7 @@ impl<'l> Visitor<DxrVisitorEnv> for DxrVisitor<'l> {
|
||||
def::DefBinding(id, _) => self.fmt.variable_str(p.span,
|
||||
sub_span,
|
||||
id,
|
||||
path_to_str(p).as_slice(),
|
||||
path_to_string(p).as_slice(),
|
||||
value.as_slice(),
|
||||
""),
|
||||
def::DefVariant(_,id,_) => self.fmt.ref_str(ref_kind,
|
||||
@ -1331,7 +1331,7 @@ impl<'l> Visitor<DxrVisitorEnv> for DxrVisitor<'l> {
|
||||
for &(id, ref p, ref immut, _) in self.collected_paths.iter() {
|
||||
let value = if *immut { value.to_owned() } else { "<mutable>".to_owned() };
|
||||
let types = self.analysis.ty_cx.node_types.borrow();
|
||||
let typ = ppaux::ty_to_str(&self.analysis.ty_cx, *types.get(&(id as uint)));
|
||||
let typ = ppaux::ty_to_string(&self.analysis.ty_cx, *types.get(&(id as uint)));
|
||||
// Get the span only for the name of the variable (I hope the path
|
||||
// is only ever a variable name, but who knows?).
|
||||
let sub_span = self.span.span_for_last_ident(p.span);
|
||||
@ -1339,7 +1339,7 @@ impl<'l> Visitor<DxrVisitorEnv> for DxrVisitor<'l> {
|
||||
self.fmt.variable_str(p.span,
|
||||
sub_span,
|
||||
id,
|
||||
path_to_str(p).as_slice(),
|
||||
path_to_string(p).as_slice(),
|
||||
value.as_slice(),
|
||||
typ.as_slice());
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ impl<'a> FmtStrs<'a> {
|
||||
// the local case they can be overridden in one block and there is no nice way
|
||||
// to refer to such a scope in english, so we just hack it by appending the
|
||||
// variable def's node id
|
||||
let qualname = String::from_str(name).append("$").append(id.to_str().as_slice());
|
||||
let qualname = String::from_str(name).append("$").append(id.to_string().as_slice());
|
||||
self.check_and_record(Variable,
|
||||
span,
|
||||
sub_span,
|
||||
|
@ -214,7 +214,7 @@ use middle::trans::type_of;
|
||||
use middle::trans::debuginfo;
|
||||
use middle::ty;
|
||||
use util::common::indenter;
|
||||
use util::ppaux::{Repr, vec_map_to_str};
|
||||
use util::ppaux::{Repr, vec_map_to_string};
|
||||
|
||||
use std;
|
||||
use std::collections::HashMap;
|
||||
@ -409,7 +409,7 @@ fn expand_nested_bindings<'a, 'b>(
|
||||
bcx.to_str(),
|
||||
m.repr(bcx.tcx()),
|
||||
col,
|
||||
bcx.val_to_str(val));
|
||||
bcx.val_to_string(val));
|
||||
let _indenter = indenter();
|
||||
|
||||
m.iter().map(|br| {
|
||||
@ -449,7 +449,7 @@ fn enter_match<'a, 'b>(
|
||||
bcx.to_str(),
|
||||
m.repr(bcx.tcx()),
|
||||
col,
|
||||
bcx.val_to_str(val));
|
||||
bcx.val_to_string(val));
|
||||
let _indenter = indenter();
|
||||
|
||||
m.iter().filter_map(|br| {
|
||||
@ -485,7 +485,7 @@ fn enter_default<'a, 'b>(
|
||||
bcx.to_str(),
|
||||
m.repr(bcx.tcx()),
|
||||
col,
|
||||
bcx.val_to_str(val));
|
||||
bcx.val_to_string(val));
|
||||
let _indenter = indenter();
|
||||
|
||||
// Collect all of the matches that can match against anything.
|
||||
@ -541,7 +541,7 @@ fn enter_opt<'a, 'b>(
|
||||
m.repr(bcx.tcx()),
|
||||
*opt,
|
||||
col,
|
||||
bcx.val_to_str(val));
|
||||
bcx.val_to_string(val));
|
||||
let _indenter = indenter();
|
||||
|
||||
let ctor = match opt {
|
||||
@ -922,7 +922,7 @@ fn compare_values<'a>(
|
||||
let did = langcall(cx,
|
||||
None,
|
||||
format!("comparison of `{}`",
|
||||
cx.ty_to_str(rhs_t)).as_slice(),
|
||||
cx.ty_to_string(rhs_t)).as_slice(),
|
||||
StrEqFnLangItem);
|
||||
callee::trans_lang_call(cx, did, [lhs, rhs], None)
|
||||
}
|
||||
@ -988,7 +988,7 @@ fn insert_lllocals<'a>(mut bcx: &'a Block<'a>, bindings_map: &BindingsMap,
|
||||
|
||||
debug!("binding {:?} to {}",
|
||||
binding_info.id,
|
||||
bcx.val_to_str(llval));
|
||||
bcx.val_to_string(llval));
|
||||
bcx.fcx.lllocals.borrow_mut().insert(binding_info.id, datum);
|
||||
|
||||
if bcx.sess().opts.debuginfo == FullDebugInfo {
|
||||
@ -1011,9 +1011,9 @@ fn compile_guard<'a, 'b>(
|
||||
-> &'b Block<'b> {
|
||||
debug!("compile_guard(bcx={}, guard_expr={}, m={}, vals={})",
|
||||
bcx.to_str(),
|
||||
bcx.expr_to_str(guard_expr),
|
||||
bcx.expr_to_string(guard_expr),
|
||||
m.repr(bcx.tcx()),
|
||||
vec_map_to_str(vals, |v| bcx.val_to_str(*v)));
|
||||
vec_map_to_string(vals, |v| bcx.val_to_string(*v)));
|
||||
let _indenter = indenter();
|
||||
|
||||
let mut bcx = insert_lllocals(bcx, &data.bindings_map, None);
|
||||
@ -1050,7 +1050,7 @@ fn compile_submatch<'a, 'b>(
|
||||
debug!("compile_submatch(bcx={}, m={}, vals={})",
|
||||
bcx.to_str(),
|
||||
m.repr(bcx.tcx()),
|
||||
vec_map_to_str(vals, |v| bcx.val_to_str(*v)));
|
||||
vec_map_to_string(vals, |v| bcx.val_to_string(*v)));
|
||||
let _indenter = indenter();
|
||||
let _icx = push_ctxt("match::compile_submatch");
|
||||
let mut bcx = bcx;
|
||||
@ -1155,7 +1155,7 @@ fn compile_submatch_continue<'a, 'b>(
|
||||
debug!("options={:?}", opts);
|
||||
let mut kind = no_branch;
|
||||
let mut test_val = val;
|
||||
debug!("test_val={}", bcx.val_to_str(test_val));
|
||||
debug!("test_val={}", bcx.val_to_string(test_val));
|
||||
if opts.len() > 0u {
|
||||
match *opts.get(0) {
|
||||
var(_, ref repr, _) => {
|
||||
|
@ -63,7 +63,7 @@ use syntax::abi::{X86, X86_64, Arm, Mips, Mipsel};
|
||||
use syntax::ast;
|
||||
use syntax::attr;
|
||||
use syntax::attr::IntType;
|
||||
use util::ppaux::ty_to_str;
|
||||
use util::ppaux::ty_to_string;
|
||||
|
||||
type Hint = attr::ReprAttr;
|
||||
|
||||
@ -135,7 +135,7 @@ pub fn represent_node(bcx: &Block, node: ast::NodeId) -> Rc<Repr> {
|
||||
|
||||
/// Decides how to represent a given type.
|
||||
pub fn represent_type(cx: &CrateContext, t: ty::t) -> Rc<Repr> {
|
||||
debug!("Representing: {}", ty_to_str(cx.tcx(), t));
|
||||
debug!("Representing: {}", ty_to_string(cx.tcx(), t));
|
||||
match cx.adt_reprs.borrow().find(&t) {
|
||||
Some(repr) => return repr.clone(),
|
||||
None => {}
|
||||
|
@ -71,7 +71,7 @@ use middle::trans::value::Value;
|
||||
use middle::ty;
|
||||
use middle::typeck;
|
||||
use util::common::indenter;
|
||||
use util::ppaux::{Repr, ty_to_str};
|
||||
use util::ppaux::{Repr, ty_to_string};
|
||||
use util::sha2::Sha256;
|
||||
use util::nodemap::NodeMap;
|
||||
|
||||
@ -301,7 +301,7 @@ fn require_alloc_fn(bcx: &Block, info_ty: ty::t, it: LangItem) -> ast::DefId {
|
||||
Ok(id) => id,
|
||||
Err(s) => {
|
||||
bcx.sess().fatal(format!("allocation of `{}` {}",
|
||||
bcx.ty_to_str(info_ty),
|
||||
bcx.ty_to_string(info_ty),
|
||||
s).as_slice());
|
||||
}
|
||||
}
|
||||
@ -706,7 +706,7 @@ pub fn iter_structural_ty<'r,
|
||||
let variant_cx =
|
||||
fcx.new_temp_block(
|
||||
format!("enum-iter-variant-{}",
|
||||
variant.disr_val.to_str().as_slice())
|
||||
variant.disr_val.to_string().as_slice())
|
||||
.as_slice());
|
||||
match adt::trans_case(cx, &*repr, variant.disr_val) {
|
||||
_match::single_result(r) => {
|
||||
@ -809,7 +809,7 @@ pub fn fail_if_zero_or_overflows<'a>(
|
||||
}
|
||||
_ => {
|
||||
cx.sess().bug(format!("fail-if-zero on unexpected type: {}",
|
||||
ty_to_str(cx.tcx(), rhs_t)).as_slice());
|
||||
ty_to_string(cx.tcx(), rhs_t)).as_slice());
|
||||
}
|
||||
};
|
||||
let bcx = with_cond(cx, is_zero, |bcx| {
|
||||
@ -903,7 +903,7 @@ pub fn invoke<'a>(
|
||||
debug!("invoke at ???");
|
||||
}
|
||||
Some(id) => {
|
||||
debug!("invoke at {}", bcx.tcx().map.node_to_str(id));
|
||||
debug!("invoke at {}", bcx.tcx().map.node_to_string(id));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1173,7 +1173,7 @@ pub fn new_fn_ctxt<'a>(ccx: &'a CrateContext,
|
||||
if id == -1 {
|
||||
"".to_string()
|
||||
} else {
|
||||
ccx.tcx.map.path_to_str(id).to_string()
|
||||
ccx.tcx.map.path_to_string(id).to_string()
|
||||
},
|
||||
id, param_substs.repr(ccx.tcx()));
|
||||
|
||||
@ -1474,7 +1474,7 @@ pub fn trans_fn(ccx: &CrateContext,
|
||||
param_substs: ¶m_substs,
|
||||
id: ast::NodeId,
|
||||
attrs: &[ast::Attribute]) {
|
||||
let _s = StatRecorder::new(ccx, ccx.tcx.map.path_to_str(id).to_string());
|
||||
let _s = StatRecorder::new(ccx, ccx.tcx.map.path_to_string(id).to_string());
|
||||
debug!("trans_fn(param_substs={})", param_substs.repr(ccx.tcx()));
|
||||
let _icx = push_ctxt("trans_fn");
|
||||
let output_type = ty::ty_fn_ret(ty::node_id_to_type(ccx.tcx(), id));
|
||||
@ -1527,7 +1527,7 @@ fn trans_enum_variant_or_tuple_like_struct(ccx: &CrateContext,
|
||||
_ => ccx.sess().bug(
|
||||
format!("trans_enum_variant_or_tuple_like_struct: \
|
||||
unexpected ctor return type {}",
|
||||
ty_to_str(ccx.tcx(), ctor_ty)).as_slice())
|
||||
ty_to_string(ccx.tcx(), ctor_ty)).as_slice())
|
||||
};
|
||||
|
||||
let arena = TypedArena::new();
|
||||
@ -2010,7 +2010,7 @@ fn exported_name(ccx: &CrateContext, id: ast::NodeId,
|
||||
_ => ccx.tcx.map.with_path(id, |mut path| {
|
||||
if attr::contains_name(attrs, "no_mangle") {
|
||||
// Don't mangle
|
||||
path.last().unwrap().to_str()
|
||||
path.last().unwrap().to_string()
|
||||
} else {
|
||||
match weak_lang_items::link_name(attrs) {
|
||||
Some(name) => name.get().to_string(),
|
||||
|
@ -122,8 +122,8 @@ pub fn Invoke(cx: &Block,
|
||||
check_not_terminated(cx);
|
||||
terminate(cx, "Invoke");
|
||||
debug!("Invoke({} with arguments ({}))",
|
||||
cx.val_to_str(fn_),
|
||||
args.iter().map(|a| cx.val_to_str(*a)).collect::<Vec<String>>().connect(", "));
|
||||
cx.val_to_string(fn_),
|
||||
args.iter().map(|a| cx.val_to_string(*a)).collect::<Vec<String>>().connect(", "));
|
||||
B(cx).invoke(fn_, args, then, catch, attributes)
|
||||
}
|
||||
|
||||
|
@ -161,9 +161,9 @@ impl<'a> Builder<'a> {
|
||||
self.count_insn("invoke");
|
||||
|
||||
debug!("Invoke {} with args ({})",
|
||||
self.ccx.tn.val_to_str(llfn),
|
||||
self.ccx.tn.val_to_string(llfn),
|
||||
args.iter()
|
||||
.map(|&v| self.ccx.tn.val_to_str(v))
|
||||
.map(|&v| self.ccx.tn.val_to_string(v))
|
||||
.collect::<Vec<String>>()
|
||||
.connect(", "));
|
||||
|
||||
@ -497,8 +497,8 @@ impl<'a> Builder<'a> {
|
||||
|
||||
pub fn store(&self, val: ValueRef, ptr: ValueRef) {
|
||||
debug!("Store {} -> {}",
|
||||
self.ccx.tn.val_to_str(val),
|
||||
self.ccx.tn.val_to_str(ptr));
|
||||
self.ccx.tn.val_to_string(val),
|
||||
self.ccx.tn.val_to_string(ptr));
|
||||
assert!(self.llbuilder.is_not_null());
|
||||
self.count_insn("store");
|
||||
unsafe {
|
||||
@ -508,8 +508,8 @@ impl<'a> Builder<'a> {
|
||||
|
||||
pub fn volatile_store(&self, val: ValueRef, ptr: ValueRef) {
|
||||
debug!("Store {} -> {}",
|
||||
self.ccx.tn.val_to_str(val),
|
||||
self.ccx.tn.val_to_str(ptr));
|
||||
self.ccx.tn.val_to_string(val),
|
||||
self.ccx.tn.val_to_string(ptr));
|
||||
assert!(self.llbuilder.is_not_null());
|
||||
self.count_insn("store.volatile");
|
||||
unsafe {
|
||||
@ -520,8 +520,8 @@ impl<'a> Builder<'a> {
|
||||
|
||||
pub fn atomic_store(&self, val: ValueRef, ptr: ValueRef, order: AtomicOrdering) {
|
||||
debug!("Store {} -> {}",
|
||||
self.ccx.tn.val_to_str(val),
|
||||
self.ccx.tn.val_to_str(ptr));
|
||||
self.ccx.tn.val_to_string(val),
|
||||
self.ccx.tn.val_to_string(ptr));
|
||||
self.count_insn("store.atomic");
|
||||
unsafe {
|
||||
let ty = Type::from_ref(llvm::LLVMTypeOf(ptr));
|
||||
@ -760,7 +760,7 @@ impl<'a> Builder<'a> {
|
||||
if self.ccx.sess().asm_comments() {
|
||||
let s = format!("{} ({})",
|
||||
text,
|
||||
self.ccx.sess().codemap().span_to_str(sp));
|
||||
self.ccx.sess().codemap().span_to_string(sp));
|
||||
debug!("{}", s.as_slice());
|
||||
self.add_comment(s.as_slice());
|
||||
}
|
||||
@ -794,11 +794,11 @@ impl<'a> Builder<'a> {
|
||||
else { lib::llvm::False };
|
||||
|
||||
let argtys = inputs.iter().map(|v| {
|
||||
debug!("Asm Input Type: {:?}", self.ccx.tn.val_to_str(*v));
|
||||
debug!("Asm Input Type: {:?}", self.ccx.tn.val_to_string(*v));
|
||||
val_ty(*v)
|
||||
}).collect::<Vec<_>>();
|
||||
|
||||
debug!("Asm Output Type: {:?}", self.ccx.tn.type_to_str(output));
|
||||
debug!("Asm Output Type: {:?}", self.ccx.tn.type_to_string(output));
|
||||
let fty = Type::func(argtys.as_slice(), &output);
|
||||
unsafe {
|
||||
let v = llvm::LLVMInlineAsm(
|
||||
@ -812,9 +812,9 @@ impl<'a> Builder<'a> {
|
||||
self.count_insn("call");
|
||||
|
||||
debug!("Call {} with args ({})",
|
||||
self.ccx.tn.val_to_str(llfn),
|
||||
self.ccx.tn.val_to_string(llfn),
|
||||
args.iter()
|
||||
.map(|&v| self.ccx.tn.val_to_str(v))
|
||||
.map(|&v| self.ccx.tn.val_to_string(v))
|
||||
.collect::<Vec<String>>()
|
||||
.connect(", "));
|
||||
|
||||
|
@ -108,7 +108,7 @@ fn trans<'a>(bcx: &'a Block<'a>, expr: &ast::Expr) -> Callee<'a> {
|
||||
expr.span,
|
||||
format!("type of callee is neither bare-fn nor closure: \
|
||||
{}",
|
||||
bcx.ty_to_str(datum.ty)).as_slice());
|
||||
bcx.ty_to_string(datum.ty)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -905,7 +905,7 @@ pub fn trans_arg_datum<'a>(
|
||||
|
||||
let arg_datum_ty = arg_datum.ty;
|
||||
|
||||
debug!(" arg datum: {}", arg_datum.to_str(bcx.ccx()));
|
||||
debug!(" arg datum: {}", arg_datum.to_string(bcx.ccx()));
|
||||
|
||||
let mut val;
|
||||
if ty::type_is_bot(arg_datum_ty) {
|
||||
@ -949,11 +949,11 @@ pub fn trans_arg_datum<'a>(
|
||||
// this could happen due to e.g. subtyping
|
||||
let llformal_arg_ty = type_of::type_of_explicit_arg(ccx, formal_arg_ty);
|
||||
debug!("casting actual type ({}) to match formal ({})",
|
||||
bcx.val_to_str(val), bcx.llty_str(llformal_arg_ty));
|
||||
bcx.val_to_string(val), bcx.llty_str(llformal_arg_ty));
|
||||
val = PointerCast(bcx, val, llformal_arg_ty);
|
||||
}
|
||||
}
|
||||
|
||||
debug!("--- trans_arg_datum passing {}", bcx.val_to_str(val));
|
||||
debug!("--- trans_arg_datum passing {}", bcx.val_to_string(val));
|
||||
Result::new(bcx, val)
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
*/
|
||||
|
||||
debug!("push_ast_cleanup_scope({})",
|
||||
self.ccx.tcx.map.node_to_str(id));
|
||||
self.ccx.tcx.map.node_to_string(id));
|
||||
|
||||
// FIXME(#2202) -- currently closure bodies have a parent
|
||||
// region, which messes up the assertion below, since there
|
||||
@ -109,7 +109,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
id: ast::NodeId,
|
||||
exits: [&'a Block<'a>, ..EXIT_MAX]) {
|
||||
debug!("push_loop_cleanup_scope({})",
|
||||
self.ccx.tcx.map.node_to_str(id));
|
||||
self.ccx.tcx.map.node_to_string(id));
|
||||
assert_eq!(Some(id), self.top_ast_scope());
|
||||
|
||||
self.push_scope(CleanupScope::new(LoopScopeKind(id, exits)));
|
||||
@ -133,7 +133,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
*/
|
||||
|
||||
debug!("pop_and_trans_ast_cleanup_scope({})",
|
||||
self.ccx.tcx.map.node_to_str(cleanup_scope));
|
||||
self.ccx.tcx.map.node_to_string(cleanup_scope));
|
||||
|
||||
assert!(self.top_scope(|s| s.kind.is_ast_with_id(cleanup_scope)));
|
||||
|
||||
@ -152,7 +152,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
*/
|
||||
|
||||
debug!("pop_loop_cleanup_scope({})",
|
||||
self.ccx.tcx.map.node_to_str(cleanup_scope));
|
||||
self.ccx.tcx.map.node_to_string(cleanup_scope));
|
||||
|
||||
assert!(self.top_scope(|s| s.kind.is_loop_with_id(cleanup_scope)));
|
||||
|
||||
@ -246,7 +246,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
|
||||
debug!("schedule_drop_mem({:?}, val={}, ty={})",
|
||||
cleanup_scope,
|
||||
self.ccx.tn.val_to_str(val),
|
||||
self.ccx.tn.val_to_string(val),
|
||||
ty.repr(self.ccx.tcx()));
|
||||
|
||||
self.schedule_clean(cleanup_scope, drop as Box<Cleanup>);
|
||||
@ -272,7 +272,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
|
||||
debug!("schedule_drop_and_zero_mem({:?}, val={}, ty={}, zero={})",
|
||||
cleanup_scope,
|
||||
self.ccx.tn.val_to_str(val),
|
||||
self.ccx.tn.val_to_string(val),
|
||||
ty.repr(self.ccx.tcx()),
|
||||
true);
|
||||
|
||||
@ -298,7 +298,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
|
||||
debug!("schedule_drop_immediate({:?}, val={}, ty={})",
|
||||
cleanup_scope,
|
||||
self.ccx.tn.val_to_str(val),
|
||||
self.ccx.tn.val_to_string(val),
|
||||
ty.repr(self.ccx.tcx()));
|
||||
|
||||
self.schedule_clean(cleanup_scope, drop as Box<Cleanup>);
|
||||
@ -318,7 +318,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
|
||||
debug!("schedule_free_value({:?}, val={}, heap={:?})",
|
||||
cleanup_scope,
|
||||
self.ccx.tn.val_to_str(val),
|
||||
self.ccx.tn.val_to_string(val),
|
||||
heap);
|
||||
|
||||
self.schedule_clean(cleanup_scope, drop as Box<Cleanup>);
|
||||
@ -358,7 +358,7 @@ impl<'a> CleanupMethods<'a> for FunctionContext<'a> {
|
||||
|
||||
self.ccx.sess().bug(
|
||||
format!("no cleanup scope {} found",
|
||||
self.ccx.tcx.map.node_to_str(cleanup_scope)).as_slice());
|
||||
self.ccx.tcx.map.node_to_string(cleanup_scope)).as_slice());
|
||||
}
|
||||
|
||||
fn schedule_clean_in_custom_scope(&self,
|
||||
|
@ -27,7 +27,7 @@ use middle::trans::type_of::*;
|
||||
use middle::trans::type_::Type;
|
||||
use middle::ty;
|
||||
use util::ppaux::Repr;
|
||||
use util::ppaux::ty_to_str;
|
||||
use util::ppaux::ty_to_string;
|
||||
|
||||
use arena::TypedArena;
|
||||
use syntax::ast;
|
||||
@ -104,8 +104,8 @@ pub struct EnvValue {
|
||||
}
|
||||
|
||||
impl EnvValue {
|
||||
pub fn to_str(&self, ccx: &CrateContext) -> String {
|
||||
format!("{}({})", self.action, self.datum.to_str(ccx))
|
||||
pub fn to_string(&self, ccx: &CrateContext) -> String {
|
||||
format!("{}({})", self.action, self.datum.to_string(ccx))
|
||||
}
|
||||
}
|
||||
|
||||
@ -124,7 +124,7 @@ pub fn mk_closure_tys(tcx: &ty::ctxt,
|
||||
}
|
||||
}).collect();
|
||||
let cdata_ty = ty::mk_tup(tcx, bound_tys);
|
||||
debug!("cdata_ty={}", ty_to_str(tcx, cdata_ty));
|
||||
debug!("cdata_ty={}", ty_to_string(tcx, cdata_ty));
|
||||
return cdata_ty;
|
||||
}
|
||||
|
||||
@ -196,16 +196,16 @@ pub fn store_environment<'a>(
|
||||
let Result {bcx: bcx, val: llbox} = allocate_cbox(bcx, store, cdata_ty);
|
||||
|
||||
let llbox = PointerCast(bcx, llbox, llboxptr_ty);
|
||||
debug!("tuplify_box_ty = {}", ty_to_str(tcx, cbox_ty));
|
||||
debug!("tuplify_box_ty = {}", ty_to_string(tcx, cbox_ty));
|
||||
|
||||
// Copy expr values into boxed bindings.
|
||||
let mut bcx = bcx;
|
||||
for (i, bv) in bound_values.move_iter().enumerate() {
|
||||
debug!("Copy {} into closure", bv.to_str(ccx));
|
||||
debug!("Copy {} into closure", bv.to_string(ccx));
|
||||
|
||||
if ccx.sess().asm_comments() {
|
||||
add_comment(bcx, format!("Copy {} into closure",
|
||||
bv.to_str(ccx)).as_slice());
|
||||
bv.to_string(ccx)).as_slice());
|
||||
}
|
||||
|
||||
let bound_data = GEPi(bcx, llbox, [0u, abi::box_field_body, i]);
|
||||
|
@ -196,13 +196,13 @@ impl param_substs {
|
||||
}
|
||||
}
|
||||
|
||||
fn param_substs_to_str(this: ¶m_substs, tcx: &ty::ctxt) -> String {
|
||||
fn param_substs_to_string(this: ¶m_substs, tcx: &ty::ctxt) -> String {
|
||||
format!("param_substs({})", this.substs.repr(tcx))
|
||||
}
|
||||
|
||||
impl Repr for param_substs {
|
||||
fn repr(&self, tcx: &ty::ctxt) -> String {
|
||||
param_substs_to_str(self, tcx)
|
||||
param_substs_to_string(self, tcx)
|
||||
}
|
||||
}
|
||||
|
||||
@ -436,11 +436,11 @@ impl<'a> Block<'a> {
|
||||
token::get_ident(ident).get().to_string()
|
||||
}
|
||||
|
||||
pub fn node_id_to_str(&self, id: ast::NodeId) -> String {
|
||||
self.tcx().map.node_to_str(id).to_string()
|
||||
pub fn node_id_to_string(&self, id: ast::NodeId) -> String {
|
||||
self.tcx().map.node_to_string(id).to_string()
|
||||
}
|
||||
|
||||
pub fn expr_to_str(&self, e: &ast::Expr) -> String {
|
||||
pub fn expr_to_string(&self, e: &ast::Expr) -> String {
|
||||
e.repr(self.tcx())
|
||||
}
|
||||
|
||||
@ -454,15 +454,15 @@ impl<'a> Block<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn val_to_str(&self, val: ValueRef) -> String {
|
||||
self.ccx().tn.val_to_str(val)
|
||||
pub fn val_to_string(&self, val: ValueRef) -> String {
|
||||
self.ccx().tn.val_to_string(val)
|
||||
}
|
||||
|
||||
pub fn llty_str(&self, ty: Type) -> String {
|
||||
self.ccx().tn.type_to_str(ty)
|
||||
self.ccx().tn.type_to_string(ty)
|
||||
}
|
||||
|
||||
pub fn ty_to_str(&self, t: ty::t) -> String {
|
||||
pub fn ty_to_string(&self, t: ty::t) -> String {
|
||||
t.repr(self.tcx())
|
||||
}
|
||||
|
||||
@ -645,7 +645,7 @@ pub fn const_get_elt(cx: &CrateContext, v: ValueRef, us: &[c_uint])
|
||||
let r = llvm::LLVMConstExtractValue(v, us.as_ptr(), us.len() as c_uint);
|
||||
|
||||
debug!("const_get_elt(v={}, us={:?}, r={})",
|
||||
cx.tn.val_to_str(v), us, cx.tn.val_to_str(r));
|
||||
cx.tn.val_to_string(v), us, cx.tn.val_to_string(r));
|
||||
|
||||
return r;
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ use middle::trans::type_::Type;
|
||||
use middle::trans::type_of;
|
||||
use middle::trans::debuginfo;
|
||||
use middle::ty;
|
||||
use util::ppaux::{Repr, ty_to_str};
|
||||
use util::ppaux::{Repr, ty_to_string};
|
||||
|
||||
use std::c_str::ToCStr;
|
||||
use std::gc::Gc;
|
||||
@ -59,7 +59,7 @@ pub fn const_lit(cx: &CrateContext, e: &ast::Expr, lit: ast::Lit)
|
||||
_ => cx.sess().span_bug(lit.span,
|
||||
format!("integer literal has type {} (expected int \
|
||||
or uint)",
|
||||
ty_to_str(cx.tcx(), lit_int_ty)).as_slice())
|
||||
ty_to_string(cx.tcx(), lit_int_ty)).as_slice())
|
||||
}
|
||||
}
|
||||
ast::LitFloat(ref fs, t) => {
|
||||
@ -155,14 +155,14 @@ fn const_deref(cx: &CrateContext, v: ValueRef, t: ty::t, explicit: bool)
|
||||
}
|
||||
_ => {
|
||||
cx.sess().bug(format!("unexpected dereferenceable type {}",
|
||||
ty_to_str(cx.tcx(), t)).as_slice())
|
||||
ty_to_string(cx.tcx(), t)).as_slice())
|
||||
}
|
||||
};
|
||||
(dv, mt.ty)
|
||||
}
|
||||
None => {
|
||||
cx.sess().bug(format!("can't dereference const of type {}",
|
||||
ty_to_str(cx.tcx(), t)).as_slice())
|
||||
ty_to_string(cx.tcx(), t)).as_slice())
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -285,7 +285,7 @@ pub fn const_expr(cx: &CrateContext, e: &ast::Expr, is_local: bool) -> (ValueRef
|
||||
llvm::LLVMDumpValue(C_undef(llty));
|
||||
}
|
||||
cx.sess().bug(format!("const {} of type {} has size {} instead of {}",
|
||||
e.repr(cx.tcx()), ty_to_str(cx.tcx(), ety),
|
||||
e.repr(cx.tcx()), ty_to_string(cx.tcx(), ety),
|
||||
csize, tsize).as_slice());
|
||||
}
|
||||
(llconst, inlineable)
|
||||
|
@ -126,8 +126,8 @@ pub fn trans_if<'a>(bcx: &'a Block<'a>,
|
||||
dest: expr::Dest)
|
||||
-> &'a Block<'a> {
|
||||
debug!("trans_if(bcx={}, if_id={}, cond={}, thn={:?}, dest={})",
|
||||
bcx.to_str(), if_id, bcx.expr_to_str(cond), thn.id,
|
||||
dest.to_str(bcx.ccx()));
|
||||
bcx.to_str(), if_id, bcx.expr_to_string(cond), thn.id,
|
||||
dest.to_string(bcx.ccx()));
|
||||
let _icx = push_ctxt("trans_if");
|
||||
let mut bcx = bcx;
|
||||
|
||||
|
@ -23,7 +23,7 @@ use middle::trans::glue;
|
||||
use middle::trans::tvec;
|
||||
use middle::trans::type_of;
|
||||
use middle::ty;
|
||||
use util::ppaux::{ty_to_str};
|
||||
use util::ppaux::{ty_to_string};
|
||||
|
||||
use syntax::ast;
|
||||
|
||||
@ -596,10 +596,10 @@ impl<K:KindOps> Datum<K> {
|
||||
}
|
||||
|
||||
#[allow(dead_code)] // useful for debugging
|
||||
pub fn to_str(&self, ccx: &CrateContext) -> String {
|
||||
pub fn to_string(&self, ccx: &CrateContext) -> String {
|
||||
format!("Datum({}, {}, {:?})",
|
||||
ccx.tn.val_to_str(self.val),
|
||||
ty_to_str(ccx.tcx(), self.ty),
|
||||
ccx.tn.val_to_string(self.val),
|
||||
ty_to_string(ccx.tcx(), self.ty),
|
||||
self.kind)
|
||||
}
|
||||
|
||||
|
@ -270,7 +270,7 @@ impl TypeMap {
|
||||
metadata: DIType) {
|
||||
if !self.type_to_metadata.insert(ty::type_id(type_), metadata) {
|
||||
cx.sess().bug(format!("Type metadata for ty::t '{}' is already in the TypeMap!",
|
||||
ppaux::ty_to_str(cx.tcx(), type_)).as_slice());
|
||||
ppaux::ty_to_string(cx.tcx(), type_)).as_slice());
|
||||
}
|
||||
}
|
||||
|
||||
@ -504,7 +504,7 @@ impl TypeMap {
|
||||
},
|
||||
_ => {
|
||||
cx.sess().bug(format!("get_unique_type_id_of_type() - unexpected type: {}, {:?}",
|
||||
ppaux::ty_to_str(cx.tcx(), type_).as_slice(),
|
||||
ppaux::ty_to_string(cx.tcx(), type_).as_slice(),
|
||||
ty::get(type_).sty).as_slice())
|
||||
}
|
||||
};
|
||||
@ -808,7 +808,7 @@ pub fn create_global_var_metadata(cx: &CrateContext,
|
||||
let type_metadata = type_metadata(cx, variable_type, span);
|
||||
|
||||
let namespace_node = namespace_for_item(cx, ast_util::local_def(node_id));
|
||||
let var_name = token::get_ident(ident).get().to_str();
|
||||
let var_name = token::get_ident(ident).get().to_string();
|
||||
let linkage_name =
|
||||
namespace_node.mangled_name_of_contained_item(var_name.as_slice());
|
||||
let var_scope = namespace_node.scope;
|
||||
@ -1056,7 +1056,7 @@ pub fn set_source_location(fcx: &FunctionContext,
|
||||
FunctionDebugContext(box ref function_debug_context) => {
|
||||
let cx = fcx.ccx;
|
||||
|
||||
debug!("set_source_location: {}", cx.sess().codemap().span_to_str(span));
|
||||
debug!("set_source_location: {}", cx.sess().codemap().span_to_string(span));
|
||||
|
||||
if function_debug_context.source_locations_enabled.get() {
|
||||
let loc = span_start(cx, span);
|
||||
@ -1812,7 +1812,7 @@ impl RecursiveTypeDescription {
|
||||
type_map.find_metadata_for_type(unfinished_type).is_none() {
|
||||
cx.sess().bug(format!("Forward declaration of potentially recursive type \
|
||||
'{}' was not found in TypeMap!",
|
||||
ppaux::ty_to_str(cx.tcx(), unfinished_type))
|
||||
ppaux::ty_to_string(cx.tcx(), unfinished_type))
|
||||
.as_slice());
|
||||
}
|
||||
}
|
||||
@ -2245,7 +2245,7 @@ fn describe_enum_variant(cx: &CrateContext,
|
||||
Some(ref names) => {
|
||||
names.iter()
|
||||
.map(|ident| {
|
||||
token::get_ident(*ident).get().to_str().into_string()
|
||||
token::get_ident(*ident).get().to_string().into_string()
|
||||
}).collect()
|
||||
}
|
||||
None => variant_info.args.iter().map(|_| "".to_string()).collect()
|
||||
@ -2872,7 +2872,7 @@ fn trait_pointer_metadata(cx: &CrateContext,
|
||||
ty::ty_uniq(pointee_type) => pointee_type,
|
||||
ty::ty_rptr(_, ty::mt { ty, .. }) => ty,
|
||||
_ => {
|
||||
let pp_type_name = ppaux::ty_to_str(cx.tcx(), trait_pointer_type);
|
||||
let pp_type_name = ppaux::ty_to_string(cx.tcx(), trait_pointer_type);
|
||||
cx.sess().bug(format!("debuginfo: Unexpected trait-pointer type in \
|
||||
trait_pointer_metadata(): {}",
|
||||
pp_type_name.as_slice()).as_slice());
|
||||
@ -2882,7 +2882,7 @@ fn trait_pointer_metadata(cx: &CrateContext,
|
||||
let def_id = match ty::get(trait_object_type).sty {
|
||||
ty::ty_trait(box ty::TyTrait { def_id, .. }) => def_id,
|
||||
_ => {
|
||||
let pp_type_name = ppaux::ty_to_str(cx.tcx(), trait_object_type);
|
||||
let pp_type_name = ppaux::ty_to_string(cx.tcx(), trait_object_type);
|
||||
cx.sess().bug(format!("debuginfo: Unexpected trait-object type in \
|
||||
trait_pointer_metadata(): {}",
|
||||
pp_type_name.as_slice()).as_slice());
|
||||
@ -3064,7 +3064,7 @@ fn type_metadata(cx: &CrateContext,
|
||||
the debuginfo::TypeMap but it \
|
||||
was not. (ty::t = {})",
|
||||
unique_type_id_str.as_slice(),
|
||||
ppaux::ty_to_str(cx.tcx(), t));
|
||||
ppaux::ty_to_string(cx.tcx(), t));
|
||||
cx.sess().span_bug(usage_site_span, error_message.as_slice());
|
||||
}
|
||||
};
|
||||
@ -3079,7 +3079,7 @@ fn type_metadata(cx: &CrateContext,
|
||||
debuginfo::TypeMap. \
|
||||
UniqueTypeId={}, ty::t={}",
|
||||
unique_type_id_str.as_slice(),
|
||||
ppaux::ty_to_str(cx.tcx(), t));
|
||||
ppaux::ty_to_string(cx.tcx(), t));
|
||||
cx.sess().span_bug(usage_site_span, error_message.as_slice());
|
||||
}
|
||||
}
|
||||
@ -3879,7 +3879,7 @@ fn push_debuginfo_type_name(cx: &CrateContext,
|
||||
ty::ty_infer(_) |
|
||||
ty::ty_param(_) => {
|
||||
cx.sess().bug(format!("debuginfo: Trying to create type name for \
|
||||
unexpected type: {}", ppaux::ty_to_str(cx.tcx(), t)).as_slice());
|
||||
unexpected type: {}", ppaux::ty_to_string(cx.tcx(), t)).as_slice());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ use middle::trans::type_::Type;
|
||||
|
||||
use syntax::ast;
|
||||
use syntax::codemap;
|
||||
use syntax::print::pprust::{expr_to_str};
|
||||
use syntax::print::pprust::{expr_to_string};
|
||||
|
||||
use std::gc::Gc;
|
||||
|
||||
@ -91,9 +91,9 @@ pub enum Dest {
|
||||
}
|
||||
|
||||
impl Dest {
|
||||
pub fn to_str(&self, ccx: &CrateContext) -> String {
|
||||
pub fn to_string(&self, ccx: &CrateContext) -> String {
|
||||
match *self {
|
||||
SaveIn(v) => format!("SaveIn({})", ccx.tn.val_to_str(v)),
|
||||
SaveIn(v) => format!("SaveIn({})", ccx.tn.val_to_string(v)),
|
||||
Ignore => "Ignore".to_string()
|
||||
}
|
||||
}
|
||||
@ -148,7 +148,7 @@ pub fn trans<'a>(bcx: &'a Block<'a>,
|
||||
* the stack.
|
||||
*/
|
||||
|
||||
debug!("trans(expr={})", bcx.expr_to_str(expr));
|
||||
debug!("trans(expr={})", bcx.expr_to_string(expr));
|
||||
|
||||
let mut bcx = bcx;
|
||||
let fcx = bcx.fcx;
|
||||
@ -178,7 +178,7 @@ fn apply_adjustments<'a>(bcx: &'a Block<'a>,
|
||||
Some(adj) => { adj }
|
||||
};
|
||||
debug!("unadjusted datum for expr {}: {}",
|
||||
expr.id, datum.to_str(bcx.ccx()));
|
||||
expr.id, datum.to_string(bcx.ccx()));
|
||||
match adjustment {
|
||||
AutoAddEnv(..) => {
|
||||
datum = unpack_datum!(bcx, add_env(bcx, expr, datum));
|
||||
@ -216,7 +216,7 @@ fn apply_adjustments<'a>(bcx: &'a Block<'a>,
|
||||
datum = scratch.to_expr_datum();
|
||||
}
|
||||
}
|
||||
debug!("after adjustments, datum={}", datum.to_str(bcx.ccx()));
|
||||
debug!("after adjustments, datum={}", datum.to_string(bcx.ccx()));
|
||||
return DatumBlock {bcx: bcx, datum: datum};
|
||||
|
||||
fn auto_slice<'a>(
|
||||
@ -325,7 +325,7 @@ fn trans_unadjusted<'a>(bcx: &'a Block<'a>,
|
||||
|
||||
let mut bcx = bcx;
|
||||
|
||||
debug!("trans_unadjusted(expr={})", bcx.expr_to_str(expr));
|
||||
debug!("trans_unadjusted(expr={})", bcx.expr_to_string(expr));
|
||||
let _indenter = indenter();
|
||||
|
||||
debuginfo::set_source_location(bcx.fcx, expr.id, expr.span);
|
||||
@ -545,8 +545,8 @@ fn trans_index<'a>(bcx: &'a Block<'a>,
|
||||
|
||||
let (base, len) = base_datum.get_vec_base_and_len(bcx);
|
||||
|
||||
debug!("trans_index: base {}", bcx.val_to_str(base));
|
||||
debug!("trans_index: len {}", bcx.val_to_str(len));
|
||||
debug!("trans_index: base {}", bcx.val_to_string(base));
|
||||
debug!("trans_index: len {}", bcx.val_to_string(len));
|
||||
|
||||
let bounds_check = ICmp(bcx, lib::llvm::IntUGE, ix_val, len);
|
||||
let expect = ccx.get_intrinsic(&("llvm.expect.i1"));
|
||||
@ -780,7 +780,7 @@ fn trans_rvalue_dps_unadjusted<'a>(bcx: &'a Block<'a>,
|
||||
let expr_ty = expr_ty(bcx, expr);
|
||||
let store = ty::ty_closure_store(expr_ty);
|
||||
debug!("translating block function {} with type {}",
|
||||
expr_to_str(expr), expr_ty.repr(tcx));
|
||||
expr_to_string(expr), expr_ty.repr(tcx));
|
||||
closure::trans_expr_fn(bcx, store, &**decl, &**body, expr.id, dest)
|
||||
}
|
||||
ast::ExprCall(ref f, ref args) => {
|
||||
@ -893,7 +893,7 @@ fn trans_def_dps_unadjusted<'a>(
|
||||
_ => {
|
||||
bcx.tcx().sess.span_bug(ref_expr.span, format!(
|
||||
"Non-DPS def {:?} referened by {}",
|
||||
def, bcx.node_id_to_str(ref_expr.id)).as_slice());
|
||||
def, bcx.node_id_to_string(ref_expr.id)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -974,7 +974,7 @@ pub fn trans_local_var<'a>(bcx: &'a Block<'a>,
|
||||
}
|
||||
};
|
||||
debug!("take_local(nid={:?}, v={}, ty={})",
|
||||
nid, bcx.val_to_str(datum.val), bcx.ty_to_str(datum.ty));
|
||||
nid, bcx.val_to_string(datum.val), bcx.ty_to_string(datum.ty));
|
||||
datum
|
||||
}
|
||||
}
|
||||
@ -1462,13 +1462,13 @@ fn trans_binary<'a>(bcx: &'a Block<'a>,
|
||||
|
||||
debug!("trans_binary (expr {}): lhs_datum={}",
|
||||
expr.id,
|
||||
lhs_datum.to_str(ccx));
|
||||
lhs_datum.to_string(ccx));
|
||||
let lhs_ty = lhs_datum.ty;
|
||||
let lhs = lhs_datum.to_llscalarish(bcx);
|
||||
|
||||
debug!("trans_binary (expr {}): rhs_datum={}",
|
||||
expr.id,
|
||||
rhs_datum.to_str(ccx));
|
||||
rhs_datum.to_string(ccx));
|
||||
let rhs_ty = rhs_datum.ty;
|
||||
let rhs = rhs_datum.to_llscalarish(bcx);
|
||||
trans_eager_binop(bcx, expr, binop_ty, op,
|
||||
@ -1729,7 +1729,7 @@ fn trans_assign_op<'a>(
|
||||
let _icx = push_ctxt("trans_assign_op");
|
||||
let mut bcx = bcx;
|
||||
|
||||
debug!("trans_assign_op(expr={})", bcx.expr_to_str(expr));
|
||||
debug!("trans_assign_op(expr={})", bcx.expr_to_string(expr));
|
||||
|
||||
// User-defined operator methods cannot be used with `+=` etc right now
|
||||
assert!(!bcx.tcx().method_map.borrow().contains_key(&MethodCall::expr(expr.id)));
|
||||
@ -1799,7 +1799,7 @@ fn deref_once<'a>(bcx: &'a Block<'a>,
|
||||
|
||||
debug!("deref_once(expr={}, datum={}, method_call={})",
|
||||
expr.repr(bcx.tcx()),
|
||||
datum.to_str(ccx),
|
||||
datum.to_string(ccx),
|
||||
method_call);
|
||||
|
||||
let mut bcx = bcx;
|
||||
@ -1877,7 +1877,7 @@ fn deref_once<'a>(bcx: &'a Block<'a>,
|
||||
};
|
||||
|
||||
debug!("deref_once(expr={}, method_call={}, result={})",
|
||||
expr.id, method_call, r.datum.to_str(ccx));
|
||||
expr.id, method_call, r.datum.to_string(ccx));
|
||||
|
||||
return r;
|
||||
|
||||
|
@ -266,8 +266,8 @@ pub fn trans_native_call<'a>(
|
||||
llfn={}, \
|
||||
llretptr={})",
|
||||
callee_ty.repr(tcx),
|
||||
ccx.tn.val_to_str(llfn),
|
||||
ccx.tn.val_to_str(llretptr));
|
||||
ccx.tn.val_to_string(llfn),
|
||||
ccx.tn.val_to_string(llretptr));
|
||||
|
||||
let (fn_abi, fn_sig) = match ty::get(callee_ty).sty {
|
||||
ty::ty_bare_fn(ref fn_ty) => (fn_ty.abi, fn_ty.sig.clone()),
|
||||
@ -314,9 +314,9 @@ pub fn trans_native_call<'a>(
|
||||
|
||||
debug!("argument {}, llarg_rust={}, rust_indirect={}, arg_ty={}",
|
||||
i,
|
||||
ccx.tn.val_to_str(llarg_rust),
|
||||
ccx.tn.val_to_string(llarg_rust),
|
||||
rust_indirect,
|
||||
ccx.tn.type_to_str(arg_tys[i].ty));
|
||||
ccx.tn.type_to_string(arg_tys[i].ty));
|
||||
|
||||
// Ensure that we always have the Rust value indirectly,
|
||||
// because it makes bitcasting easier.
|
||||
@ -330,7 +330,7 @@ pub fn trans_native_call<'a>(
|
||||
}
|
||||
|
||||
debug!("llarg_rust={} (after indirection)",
|
||||
ccx.tn.val_to_str(llarg_rust));
|
||||
ccx.tn.val_to_string(llarg_rust));
|
||||
|
||||
// Check whether we need to do any casting
|
||||
match arg_tys[i].cast {
|
||||
@ -339,7 +339,7 @@ pub fn trans_native_call<'a>(
|
||||
}
|
||||
|
||||
debug!("llarg_rust={} (after casting)",
|
||||
ccx.tn.val_to_str(llarg_rust));
|
||||
ccx.tn.val_to_string(llarg_rust));
|
||||
|
||||
// Finally, load the value if needed for the foreign ABI
|
||||
let foreign_indirect = arg_tys[i].is_indirect();
|
||||
@ -355,7 +355,7 @@ pub fn trans_native_call<'a>(
|
||||
};
|
||||
|
||||
debug!("argument {}, llarg_foreign={}",
|
||||
i, ccx.tn.val_to_str(llarg_foreign));
|
||||
i, ccx.tn.val_to_string(llarg_foreign));
|
||||
|
||||
// fill padding with undef value
|
||||
match arg_tys[i].pad {
|
||||
@ -430,10 +430,10 @@ pub fn trans_native_call<'a>(
|
||||
None => fn_type.ret_ty.ty
|
||||
};
|
||||
|
||||
debug!("llretptr={}", ccx.tn.val_to_str(llretptr));
|
||||
debug!("llforeign_retval={}", ccx.tn.val_to_str(llforeign_retval));
|
||||
debug!("llrust_ret_ty={}", ccx.tn.type_to_str(llrust_ret_ty));
|
||||
debug!("llforeign_ret_ty={}", ccx.tn.type_to_str(llforeign_ret_ty));
|
||||
debug!("llretptr={}", ccx.tn.val_to_string(llretptr));
|
||||
debug!("llforeign_retval={}", ccx.tn.val_to_string(llforeign_retval));
|
||||
debug!("llrust_ret_ty={}", ccx.tn.type_to_string(llrust_ret_ty));
|
||||
debug!("llforeign_ret_ty={}", ccx.tn.type_to_string(llforeign_ret_ty));
|
||||
|
||||
if llrust_ret_ty == llforeign_ret_ty {
|
||||
base::store_ty(bcx, llforeign_retval, llretptr, fn_sig.output)
|
||||
@ -538,7 +538,7 @@ pub fn register_rust_fn_with_foreign_abi(ccx: &CrateContext,
|
||||
let llfn = base::register_fn_llvmty(ccx, sp, sym, node_id, cconv, llfn_ty);
|
||||
add_argument_attributes(&tys, llfn);
|
||||
debug!("register_rust_fn_with_foreign_abi(node_id={:?}, llfn_ty={}, llfn={})",
|
||||
node_id, ccx.tn.type_to_str(llfn_ty), ccx.tn.val_to_str(llfn));
|
||||
node_id, ccx.tn.type_to_string(llfn_ty), ccx.tn.val_to_string(llfn));
|
||||
llfn
|
||||
}
|
||||
|
||||
@ -583,13 +583,13 @@ pub fn trans_rust_fn_with_foreign_abi(ccx: &CrateContext,
|
||||
_ => {
|
||||
ccx.sess().bug(format!("build_rust_fn: extern fn {} has ty {}, \
|
||||
expected a bare fn ty",
|
||||
ccx.tcx.map.path_to_str(id),
|
||||
ccx.tcx.map.path_to_string(id),
|
||||
t.repr(tcx)).as_slice());
|
||||
}
|
||||
};
|
||||
|
||||
debug!("build_rust_fn: path={} id={} t={}",
|
||||
ccx.tcx.map.path_to_str(id),
|
||||
ccx.tcx.map.path_to_string(id),
|
||||
id, t.repr(tcx));
|
||||
|
||||
let llfn = base::decl_internal_rust_fn(ccx, t, ps.as_slice());
|
||||
@ -610,8 +610,8 @@ pub fn trans_rust_fn_with_foreign_abi(ccx: &CrateContext,
|
||||
let t = ty::node_id_to_type(tcx, id);
|
||||
|
||||
debug!("build_wrap_fn(llrustfn={}, llwrapfn={}, t={})",
|
||||
ccx.tn.val_to_str(llrustfn),
|
||||
ccx.tn.val_to_str(llwrapfn),
|
||||
ccx.tn.val_to_string(llrustfn),
|
||||
ccx.tn.val_to_string(llwrapfn),
|
||||
t.repr(ccx.tcx()));
|
||||
|
||||
// Avoid all the Rust generation stuff and just generate raw
|
||||
@ -668,11 +668,11 @@ pub fn trans_rust_fn_with_foreign_abi(ccx: &CrateContext,
|
||||
match foreign_outptr {
|
||||
Some(llforeign_outptr) => {
|
||||
debug!("out pointer, foreign={}",
|
||||
ccx.tn.val_to_str(llforeign_outptr));
|
||||
ccx.tn.val_to_string(llforeign_outptr));
|
||||
let llrust_retptr =
|
||||
builder.bitcast(llforeign_outptr, llrust_ret_ty.ptr_to());
|
||||
debug!("out pointer, foreign={} (casted)",
|
||||
ccx.tn.val_to_str(llrust_retptr));
|
||||
ccx.tn.val_to_string(llrust_retptr));
|
||||
llrust_args.push(llrust_retptr);
|
||||
return_alloca = None;
|
||||
}
|
||||
@ -683,8 +683,8 @@ pub fn trans_rust_fn_with_foreign_abi(ccx: &CrateContext,
|
||||
allocad={}, \
|
||||
llrust_ret_ty={}, \
|
||||
return_ty={}",
|
||||
ccx.tn.val_to_str(slot),
|
||||
ccx.tn.type_to_str(llrust_ret_ty),
|
||||
ccx.tn.val_to_string(slot),
|
||||
ccx.tn.type_to_string(llrust_ret_ty),
|
||||
tys.fn_sig.output.repr(tcx));
|
||||
llrust_args.push(slot);
|
||||
return_alloca = Some(slot);
|
||||
@ -712,7 +712,7 @@ pub fn trans_rust_fn_with_foreign_abi(ccx: &CrateContext,
|
||||
let mut llforeign_arg = llvm::LLVMGetParam(llwrapfn, foreign_index);
|
||||
|
||||
debug!("llforeign_arg {}{}: {}", "#",
|
||||
i, ccx.tn.val_to_str(llforeign_arg));
|
||||
i, ccx.tn.val_to_string(llforeign_arg));
|
||||
debug!("rust_indirect = {}, foreign_indirect = {}",
|
||||
rust_indirect, foreign_indirect);
|
||||
|
||||
@ -751,12 +751,12 @@ pub fn trans_rust_fn_with_foreign_abi(ccx: &CrateContext,
|
||||
};
|
||||
|
||||
debug!("llrust_arg {}{}: {}", "#",
|
||||
i, ccx.tn.val_to_str(llrust_arg));
|
||||
i, ccx.tn.val_to_string(llrust_arg));
|
||||
llrust_args.push(llrust_arg);
|
||||
}
|
||||
|
||||
// Perform the call itself
|
||||
debug!("calling llrustfn = {}, t = {}", ccx.tn.val_to_str(llrustfn), t.repr(ccx.tcx()));
|
||||
debug!("calling llrustfn = {}, t = {}", ccx.tn.val_to_string(llrustfn), t.repr(ccx.tcx()));
|
||||
let attributes = base::get_fn_llvm_attributes(ccx, t);
|
||||
let llrust_ret_val = builder.call(llrustfn, llrust_args.as_slice(), attributes.as_slice());
|
||||
|
||||
@ -876,9 +876,9 @@ fn foreign_types_for_fn_ty(ccx: &CrateContext,
|
||||
ret_def={}",
|
||||
ty.repr(ccx.tcx()),
|
||||
ccx.tn.types_to_str(llsig.llarg_tys.as_slice()),
|
||||
ccx.tn.type_to_str(llsig.llret_ty),
|
||||
ccx.tn.type_to_string(llsig.llret_ty),
|
||||
ccx.tn.types_to_str(fn_ty.arg_tys.iter().map(|t| t.ty).collect::<Vec<_>>().as_slice()),
|
||||
ccx.tn.type_to_str(fn_ty.ret_ty.ty),
|
||||
ccx.tn.type_to_string(fn_ty.ret_ty.ty),
|
||||
ret_def);
|
||||
|
||||
ForeignTypes {
|
||||
|
@ -167,11 +167,11 @@ pub fn lazily_emit_visit_glue(ccx: &CrateContext, ti: &tydesc_info) -> ValueRef
|
||||
match ti.visit_glue.get() {
|
||||
Some(visit_glue) => visit_glue,
|
||||
None => {
|
||||
debug!("+++ lazily_emit_tydesc_glue VISIT {}", ppaux::ty_to_str(ccx.tcx(), ti.ty));
|
||||
debug!("+++ lazily_emit_tydesc_glue VISIT {}", ppaux::ty_to_string(ccx.tcx(), ti.ty));
|
||||
let glue_fn = declare_generic_glue(ccx, ti.ty, llfnty, "visit");
|
||||
ti.visit_glue.set(Some(glue_fn));
|
||||
make_generic_glue(ccx, ti.ty, glue_fn, make_visit_glue, "visit");
|
||||
debug!("--- lazily_emit_tydesc_glue VISIT {}", ppaux::ty_to_str(ccx.tcx(), ti.ty));
|
||||
debug!("--- lazily_emit_tydesc_glue VISIT {}", ppaux::ty_to_string(ccx.tcx(), ti.ty));
|
||||
glue_fn
|
||||
}
|
||||
}
|
||||
@ -432,13 +432,13 @@ pub fn declare_tydesc(ccx: &CrateContext, t: ty::t) -> tydesc_info {
|
||||
|
||||
if ccx.sess().count_type_sizes() {
|
||||
println!("{}\t{}", llsize_of_real(ccx, llty),
|
||||
ppaux::ty_to_str(ccx.tcx(), t));
|
||||
ppaux::ty_to_string(ccx.tcx(), t));
|
||||
}
|
||||
|
||||
let llsize = llsize_of(ccx, llty);
|
||||
let llalign = llalign_of(ccx, llty);
|
||||
let name = mangle_internal_name_by_type_and_seq(ccx, t, "tydesc");
|
||||
debug!("+++ declare_tydesc {} {}", ppaux::ty_to_str(ccx.tcx(), t), name);
|
||||
debug!("+++ declare_tydesc {} {}", ppaux::ty_to_string(ccx.tcx(), t), name);
|
||||
let gvar = name.as_slice().with_c_str(|buf| {
|
||||
unsafe {
|
||||
llvm::LLVMAddGlobal(ccx.llmod, ccx.tydesc_type().to_ref(), buf)
|
||||
@ -447,10 +447,10 @@ pub fn declare_tydesc(ccx: &CrateContext, t: ty::t) -> tydesc_info {
|
||||
note_unique_llvm_symbol(ccx, name);
|
||||
|
||||
let ty_name = token::intern_and_get_ident(
|
||||
ppaux::ty_to_str(ccx.tcx(), t).as_slice());
|
||||
ppaux::ty_to_string(ccx.tcx(), t).as_slice());
|
||||
let ty_name = C_str_slice(ccx, ty_name);
|
||||
|
||||
debug!("--- declare_tydesc {}", ppaux::ty_to_str(ccx.tcx(), t));
|
||||
debug!("--- declare_tydesc {}", ppaux::ty_to_string(ccx.tcx(), t));
|
||||
tydesc_info {
|
||||
ty: t,
|
||||
tydesc: gvar,
|
||||
@ -468,7 +468,7 @@ fn declare_generic_glue(ccx: &CrateContext, t: ty::t, llfnty: Type,
|
||||
ccx,
|
||||
t,
|
||||
format!("glue_{}", name).as_slice());
|
||||
debug!("{} is for type {}", fn_nm, ppaux::ty_to_str(ccx.tcx(), t));
|
||||
debug!("{} is for type {}", fn_nm, ppaux::ty_to_string(ccx.tcx(), t));
|
||||
let llfn = decl_cdecl_fn(ccx, fn_nm.as_slice(), llfnty, ty::mk_nil());
|
||||
note_unique_llvm_symbol(ccx, fn_nm);
|
||||
return llfn;
|
||||
|
@ -29,7 +29,7 @@ use middle::ty;
|
||||
use syntax::ast;
|
||||
use syntax::ast_map;
|
||||
use syntax::parse::token;
|
||||
use util::ppaux::ty_to_str;
|
||||
use util::ppaux::ty_to_string;
|
||||
|
||||
pub fn get_simple_intrinsic(ccx: &CrateContext, item: &ast::ForeignItem) -> Option<ValueRef> {
|
||||
let name = match token::get_ident(item.ident).get() {
|
||||
@ -398,10 +398,10 @@ pub fn trans_intrinsic(ccx: &CrateContext,
|
||||
format!("transmute called on types with different sizes: \
|
||||
{} ({} bit{}) to \
|
||||
{} ({} bit{})",
|
||||
ty_to_str(ccx.tcx(), in_type),
|
||||
ty_to_string(ccx.tcx(), in_type),
|
||||
in_type_size,
|
||||
if in_type_size == 1 {""} else {"s"},
|
||||
ty_to_str(ccx.tcx(), out_type),
|
||||
ty_to_string(ccx.tcx(), out_type),
|
||||
out_type_size,
|
||||
if out_type_size == 1 {""} else {"s"}).as_slice());
|
||||
}
|
||||
@ -587,14 +587,14 @@ pub fn check_intrinsics(ccx: &CrateContext) {
|
||||
.span_err(transmute_restriction.span,
|
||||
format!("transmute called on types with different sizes: \
|
||||
{} ({} bit{}) to {} ({} bit{})",
|
||||
ty_to_str(ccx.tcx(), transmute_restriction.from),
|
||||
ty_to_string(ccx.tcx(), transmute_restriction.from),
|
||||
from_type_size as uint,
|
||||
if from_type_size == 1 {
|
||||
""
|
||||
} else {
|
||||
"s"
|
||||
},
|
||||
ty_to_str(ccx.tcx(), transmute_restriction.to),
|
||||
ty_to_string(ccx.tcx(), transmute_restriction.to),
|
||||
to_type_size as uint,
|
||||
if to_type_size == 1 {
|
||||
""
|
||||
|
@ -25,13 +25,13 @@ impl<'a, T:LlvmRepr> LlvmRepr for &'a [T] {
|
||||
|
||||
impl LlvmRepr for Type {
|
||||
fn llrepr(&self, ccx: &CrateContext) -> String {
|
||||
ccx.tn.type_to_str(*self)
|
||||
ccx.tn.type_to_string(*self)
|
||||
}
|
||||
}
|
||||
|
||||
impl LlvmRepr for ValueRef {
|
||||
fn llrepr(&self, ccx: &CrateContext) -> String {
|
||||
ccx.tn.val_to_str(*self)
|
||||
ccx.tn.val_to_string(*self)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ use middle::trans::meth;
|
||||
use middle::trans::type_::Type;
|
||||
use middle::trans::type_of::*;
|
||||
use middle::ty;
|
||||
use util::ppaux::ty_to_str;
|
||||
use util::ppaux::ty_to_string;
|
||||
|
||||
use std::rc::Rc;
|
||||
use arena::TypedArena;
|
||||
@ -98,7 +98,7 @@ impl<'a, 'b> Reflector<'a, 'b> {
|
||||
debug!("passing {} args:", args.len());
|
||||
let mut bcx = self.bcx;
|
||||
for (i, a) in args.iter().enumerate() {
|
||||
debug!("arg {}: {}", i, bcx.val_to_str(*a));
|
||||
debug!("arg {}: {}", i, bcx.val_to_string(*a));
|
||||
}
|
||||
let result = unpack_result!(bcx, callee::trans_call_inner(
|
||||
self.bcx, None, mth_ty,
|
||||
@ -129,7 +129,7 @@ impl<'a, 'b> Reflector<'a, 'b> {
|
||||
pub fn visit_ty(&mut self, t: ty::t) {
|
||||
let bcx = self.bcx;
|
||||
let tcx = bcx.tcx();
|
||||
debug!("reflect::visit_ty {}", ty_to_str(bcx.tcx(), t));
|
||||
debug!("reflect::visit_ty {}", ty_to_string(bcx.tcx(), t));
|
||||
|
||||
match ty::get(t).sty {
|
||||
ty::ty_bot => self.leaf("bot"),
|
||||
@ -175,7 +175,7 @@ impl<'a, 'b> Reflector<'a, 'b> {
|
||||
ty::ty_trait(..) => {
|
||||
let extra = [
|
||||
self.c_slice(token::intern_and_get_ident(
|
||||
ty_to_str(tcx, t).as_slice()))
|
||||
ty_to_string(tcx, t).as_slice()))
|
||||
];
|
||||
self.visit("trait", extra);
|
||||
}
|
||||
@ -204,7 +204,7 @@ impl<'a, 'b> Reflector<'a, 'b> {
|
||||
ty::ty_trait(..) => {
|
||||
let extra = [
|
||||
self.c_slice(token::intern_and_get_ident(
|
||||
ty_to_str(tcx, t).as_slice()))
|
||||
ty_to_string(tcx, t).as_slice()))
|
||||
];
|
||||
self.visit("trait", extra);
|
||||
}
|
||||
@ -269,7 +269,7 @@ impl<'a, 'b> Reflector<'a, 'b> {
|
||||
|
||||
let extra = (vec!(
|
||||
self.c_slice(
|
||||
token::intern_and_get_ident(ty_to_str(tcx,
|
||||
token::intern_and_get_ident(ty_to_string(tcx,
|
||||
t).as_slice())),
|
||||
self.c_bool(named_fields),
|
||||
self.c_uint(fields.len())
|
||||
|
@ -29,7 +29,7 @@ use middle::trans::machine::{llsize_of, nonzero_llsize_of, llsize_of_alloc};
|
||||
use middle::trans::type_::Type;
|
||||
use middle::trans::type_of;
|
||||
use middle::ty;
|
||||
use util::ppaux::ty_to_str;
|
||||
use util::ppaux::ty_to_string;
|
||||
|
||||
use syntax::ast;
|
||||
use syntax::parse::token::InternedString;
|
||||
@ -73,12 +73,12 @@ pub struct VecTypes {
|
||||
}
|
||||
|
||||
impl VecTypes {
|
||||
pub fn to_str(&self, ccx: &CrateContext) -> String {
|
||||
pub fn to_string(&self, ccx: &CrateContext) -> String {
|
||||
format!("VecTypes {{unit_ty={}, llunit_ty={}, \
|
||||
llunit_size={}, llunit_alloc_size={}}}",
|
||||
ty_to_str(ccx.tcx(), self.unit_ty),
|
||||
ccx.tn.type_to_str(self.llunit_ty),
|
||||
ccx.tn.val_to_str(self.llunit_size),
|
||||
ty_to_string(ccx.tcx(), self.unit_ty),
|
||||
ccx.tn.type_to_string(self.llunit_ty),
|
||||
ccx.tn.val_to_string(self.llunit_size),
|
||||
self.llunit_alloc_size)
|
||||
}
|
||||
}
|
||||
@ -97,7 +97,7 @@ pub fn trans_fixed_vstore<'a>(
|
||||
// generate the content.
|
||||
|
||||
debug!("trans_fixed_vstore(vstore_expr={}, dest={:?})",
|
||||
bcx.expr_to_str(vstore_expr), dest.to_str(bcx.ccx()));
|
||||
bcx.expr_to_string(vstore_expr), dest.to_string(bcx.ccx()));
|
||||
|
||||
let vt = vec_types_from_expr(bcx, vstore_expr);
|
||||
|
||||
@ -129,7 +129,7 @@ pub fn trans_slice_vstore<'a>(
|
||||
let mut bcx = bcx;
|
||||
|
||||
debug!("trans_slice_vstore(vstore_expr={}, dest={})",
|
||||
bcx.expr_to_str(vstore_expr), dest.to_str(ccx));
|
||||
bcx.expr_to_string(vstore_expr), dest.to_string(ccx));
|
||||
|
||||
// Handle the &"..." case:
|
||||
match content_expr.node {
|
||||
@ -150,7 +150,7 @@ pub fn trans_slice_vstore<'a>(
|
||||
// Handle the &[...] case:
|
||||
let vt = vec_types_from_expr(bcx, vstore_expr);
|
||||
let count = elements_required(bcx, content_expr);
|
||||
debug!("vt={}, count={:?}", vt.to_str(ccx), count);
|
||||
debug!("vt={}, count={:?}", vt.to_string(ccx), count);
|
||||
|
||||
let llcount = C_uint(ccx, count);
|
||||
let llfixed;
|
||||
@ -202,8 +202,8 @@ pub fn trans_lit_str<'a>(
|
||||
*/
|
||||
|
||||
debug!("trans_lit_str(lit_expr={}, dest={})",
|
||||
bcx.expr_to_str(lit_expr),
|
||||
dest.to_str(bcx.ccx()));
|
||||
bcx.expr_to_string(lit_expr),
|
||||
dest.to_string(bcx.ccx()));
|
||||
|
||||
match dest {
|
||||
Ignore => bcx,
|
||||
@ -233,7 +233,7 @@ pub fn trans_uniq_vstore<'a>(bcx: &'a Block<'a>,
|
||||
* the array elements into them.
|
||||
*/
|
||||
|
||||
debug!("trans_uniq_vstore(vstore_expr={})", bcx.expr_to_str(vstore_expr));
|
||||
debug!("trans_uniq_vstore(vstore_expr={})", bcx.expr_to_string(vstore_expr));
|
||||
let fcx = bcx.fcx;
|
||||
let ccx = fcx.ccx;
|
||||
|
||||
@ -297,7 +297,7 @@ pub fn trans_uniq_vstore<'a>(bcx: &'a Block<'a>,
|
||||
let dataptr = get_dataptr(bcx, val);
|
||||
|
||||
debug!("alloc_uniq_vec() returned val={}, dataptr={}",
|
||||
bcx.val_to_str(val), bcx.val_to_str(dataptr));
|
||||
bcx.val_to_string(val), bcx.val_to_string(dataptr));
|
||||
|
||||
let bcx = write_content(bcx, &vt, vstore_expr,
|
||||
content_expr, SaveIn(dataptr));
|
||||
@ -319,9 +319,9 @@ pub fn write_content<'a>(
|
||||
let mut bcx = bcx;
|
||||
|
||||
debug!("write_content(vt={}, dest={}, vstore_expr={:?})",
|
||||
vt.to_str(bcx.ccx()),
|
||||
dest.to_str(bcx.ccx()),
|
||||
bcx.expr_to_str(vstore_expr));
|
||||
vt.to_string(bcx.ccx()),
|
||||
dest.to_string(bcx.ccx()),
|
||||
bcx.expr_to_string(vstore_expr));
|
||||
|
||||
match content_expr.node {
|
||||
ast::ExprLit(lit) => {
|
||||
@ -361,7 +361,7 @@ pub fn write_content<'a>(
|
||||
for (i, element) in elements.iter().enumerate() {
|
||||
let lleltptr = GEPi(bcx, lldest, [i]);
|
||||
debug!("writing index {:?} with lleltptr={:?}",
|
||||
i, bcx.val_to_str(lleltptr));
|
||||
i, bcx.val_to_string(lleltptr));
|
||||
bcx = expr::trans_into(bcx, &**element,
|
||||
SaveIn(lleltptr));
|
||||
fcx.schedule_drop_mem(
|
||||
|
@ -199,7 +199,7 @@ pub fn type_of(cx: &CrateContext, t: ty::t) -> Type {
|
||||
t,
|
||||
t_norm.repr(cx.tcx()),
|
||||
t_norm,
|
||||
cx.tn.type_to_str(llty));
|
||||
cx.tn.type_to_string(llty));
|
||||
cx.lltypes.borrow_mut().insert(t, llty);
|
||||
return llty;
|
||||
}
|
||||
@ -291,7 +291,7 @@ pub fn type_of(cx: &CrateContext, t: ty::t) -> Type {
|
||||
debug!("--> mapped t={} {:?} to llty={}",
|
||||
t.repr(cx.tcx()),
|
||||
t,
|
||||
cx.tn.type_to_str(llty));
|
||||
cx.tn.type_to_string(llty));
|
||||
|
||||
cx.lltypes.borrow_mut().insert(t, llty);
|
||||
|
||||
|
@ -32,8 +32,8 @@ use middle::typeck::MethodCall;
|
||||
use middle::ty_fold;
|
||||
use middle::ty_fold::{TypeFoldable,TypeFolder};
|
||||
use middle;
|
||||
use util::ppaux::{note_and_explain_region, bound_region_ptr_to_str};
|
||||
use util::ppaux::{trait_store_to_str, ty_to_str};
|
||||
use util::ppaux::{note_and_explain_region, bound_region_ptr_to_string};
|
||||
use util::ppaux::{trait_store_to_string, ty_to_string};
|
||||
use util::ppaux::{Repr, UserString};
|
||||
use util::common::{indenter};
|
||||
use util::nodemap::{NodeMap, NodeSet, DefIdMap, DefIdSet, FnvHashMap};
|
||||
@ -2243,8 +2243,8 @@ pub fn is_instantiable(cx: &ctxt, r_ty: t) -> bool {
|
||||
fn type_requires(cx: &ctxt, seen: &mut Vec<DefId>,
|
||||
r_ty: t, ty: t) -> bool {
|
||||
debug!("type_requires({}, {})?",
|
||||
::util::ppaux::ty_to_str(cx, r_ty),
|
||||
::util::ppaux::ty_to_str(cx, ty));
|
||||
::util::ppaux::ty_to_string(cx, r_ty),
|
||||
::util::ppaux::ty_to_string(cx, ty));
|
||||
|
||||
let r = {
|
||||
get(r_ty).sty == get(ty).sty ||
|
||||
@ -2252,8 +2252,8 @@ pub fn is_instantiable(cx: &ctxt, r_ty: t) -> bool {
|
||||
};
|
||||
|
||||
debug!("type_requires({}, {})? {}",
|
||||
::util::ppaux::ty_to_str(cx, r_ty),
|
||||
::util::ppaux::ty_to_str(cx, ty),
|
||||
::util::ppaux::ty_to_string(cx, r_ty),
|
||||
::util::ppaux::ty_to_string(cx, ty),
|
||||
r);
|
||||
return r;
|
||||
}
|
||||
@ -2261,8 +2261,8 @@ pub fn is_instantiable(cx: &ctxt, r_ty: t) -> bool {
|
||||
fn subtypes_require(cx: &ctxt, seen: &mut Vec<DefId>,
|
||||
r_ty: t, ty: t) -> bool {
|
||||
debug!("subtypes_require({}, {})?",
|
||||
::util::ppaux::ty_to_str(cx, r_ty),
|
||||
::util::ppaux::ty_to_str(cx, ty));
|
||||
::util::ppaux::ty_to_string(cx, r_ty),
|
||||
::util::ppaux::ty_to_string(cx, ty));
|
||||
|
||||
let r = match get(ty).sty {
|
||||
// fixed length vectors need special treatment compared to
|
||||
@ -2337,8 +2337,8 @@ pub fn is_instantiable(cx: &ctxt, r_ty: t) -> bool {
|
||||
};
|
||||
|
||||
debug!("subtypes_require({}, {})? {}",
|
||||
::util::ppaux::ty_to_str(cx, r_ty),
|
||||
::util::ppaux::ty_to_str(cx, ty),
|
||||
::util::ppaux::ty_to_string(cx, r_ty),
|
||||
::util::ppaux::ty_to_string(cx, ty),
|
||||
r);
|
||||
|
||||
return r;
|
||||
@ -2381,7 +2381,7 @@ pub fn is_type_representable(cx: &ctxt, sp: Span, ty: t) -> Representability {
|
||||
fn type_structurally_recursive(cx: &ctxt, sp: Span, seen: &mut Vec<DefId>,
|
||||
ty: t) -> Representability {
|
||||
debug!("type_structurally_recursive: {}",
|
||||
::util::ppaux::ty_to_str(cx, ty));
|
||||
::util::ppaux::ty_to_string(cx, ty));
|
||||
|
||||
// Compare current type to previously seen types
|
||||
match get(ty).sty {
|
||||
@ -2441,7 +2441,7 @@ pub fn is_type_representable(cx: &ctxt, sp: Span, ty: t) -> Representability {
|
||||
}
|
||||
|
||||
debug!("is_type_representable: {}",
|
||||
::util::ppaux::ty_to_str(cx, ty));
|
||||
::util::ppaux::ty_to_string(cx, ty));
|
||||
|
||||
// To avoid a stack overflow when checking an enum variant or struct that
|
||||
// contains a different, structurally recursive type, maintain a stack
|
||||
@ -2595,7 +2595,7 @@ pub fn node_id_to_trait_ref(cx: &ctxt, id: ast::NodeId) -> Rc<ty::TraitRef> {
|
||||
Some(t) => t.clone(),
|
||||
None => cx.sess.bug(
|
||||
format!("node_id_to_trait_ref: no trait ref for node `{}`",
|
||||
cx.map.node_to_str(id)).as_slice())
|
||||
cx.map.node_to_string(id)).as_slice())
|
||||
}
|
||||
}
|
||||
|
||||
@ -2608,7 +2608,7 @@ pub fn node_id_to_type(cx: &ctxt, id: ast::NodeId) -> t {
|
||||
Some(t) => t,
|
||||
None => cx.sess.bug(
|
||||
format!("node_id_to_type: no type for node `{}`",
|
||||
cx.map.node_to_str(id)).as_slice())
|
||||
cx.map.node_to_string(id)).as_slice())
|
||||
}
|
||||
}
|
||||
|
||||
@ -2842,7 +2842,7 @@ pub fn adjust_ty(cx: &ctxt,
|
||||
format!("the {}th autoderef failed: \
|
||||
{}",
|
||||
i,
|
||||
ty_to_str(cx, adjusted_ty))
|
||||
ty_to_string(cx, adjusted_ty))
|
||||
.as_slice());
|
||||
}
|
||||
}
|
||||
@ -3220,11 +3220,11 @@ pub fn param_tys_in_type(ty: t) -> Vec<ParamTy> {
|
||||
rslt
|
||||
}
|
||||
|
||||
pub fn ty_sort_str(cx: &ctxt, t: t) -> String {
|
||||
pub fn ty_sort_string(cx: &ctxt, t: t) -> String {
|
||||
match get(t).sty {
|
||||
ty_nil | ty_bot | ty_bool | ty_char | ty_int(_) |
|
||||
ty_uint(_) | ty_float(_) | ty_str => {
|
||||
::util::ppaux::ty_to_str(cx, t)
|
||||
::util::ppaux::ty_to_string(cx, t)
|
||||
}
|
||||
|
||||
ty_enum(id, _) => format!("enum {}", item_path_str(cx, id)),
|
||||
@ -3277,18 +3277,18 @@ pub fn type_err_to_str(cx: &ctxt, err: &type_err) -> String {
|
||||
terr_mismatch => "types differ".to_string(),
|
||||
terr_fn_style_mismatch(values) => {
|
||||
format!("expected {} fn but found {} fn",
|
||||
values.expected.to_str(),
|
||||
values.found.to_str())
|
||||
values.expected.to_string(),
|
||||
values.found.to_string())
|
||||
}
|
||||
terr_abi_mismatch(values) => {
|
||||
format!("expected {} fn but found {} fn",
|
||||
values.expected.to_str(),
|
||||
values.found.to_str())
|
||||
values.expected.to_string(),
|
||||
values.found.to_string())
|
||||
}
|
||||
terr_onceness_mismatch(values) => {
|
||||
format!("expected {} fn but found {} fn",
|
||||
values.expected.to_str(),
|
||||
values.found.to_str())
|
||||
values.expected.to_string(),
|
||||
values.found.to_string())
|
||||
}
|
||||
terr_sigil_mismatch(values) => {
|
||||
format!("expected {}, found {}",
|
||||
@ -3344,22 +3344,22 @@ pub fn type_err_to_str(cx: &ctxt, err: &type_err) -> String {
|
||||
terr_regions_insufficiently_polymorphic(br, _) => {
|
||||
format!("expected bound lifetime parameter {}, \
|
||||
but found concrete lifetime",
|
||||
bound_region_ptr_to_str(cx, br))
|
||||
bound_region_ptr_to_string(cx, br))
|
||||
}
|
||||
terr_regions_overly_polymorphic(br, _) => {
|
||||
format!("expected concrete lifetime, \
|
||||
but found bound lifetime parameter {}",
|
||||
bound_region_ptr_to_str(cx, br))
|
||||
bound_region_ptr_to_string(cx, br))
|
||||
}
|
||||
terr_trait_stores_differ(_, ref values) => {
|
||||
format!("trait storage differs: expected `{}` but found `{}`",
|
||||
trait_store_to_str(cx, (*values).expected),
|
||||
trait_store_to_str(cx, (*values).found))
|
||||
trait_store_to_string(cx, (*values).expected),
|
||||
trait_store_to_string(cx, (*values).found))
|
||||
}
|
||||
terr_sorts(values) => {
|
||||
format!("expected {} but found {}",
|
||||
ty_sort_str(cx, values.expected),
|
||||
ty_sort_str(cx, values.found))
|
||||
ty_sort_string(cx, values.expected),
|
||||
ty_sort_string(cx, values.found))
|
||||
}
|
||||
terr_traits(values) => {
|
||||
format!("expected trait `{}` but found trait `{}`",
|
||||
@ -3384,13 +3384,13 @@ pub fn type_err_to_str(cx: &ctxt, err: &type_err) -> String {
|
||||
}
|
||||
terr_int_mismatch(ref values) => {
|
||||
format!("expected `{}` but found `{}`",
|
||||
values.expected.to_str(),
|
||||
values.found.to_str())
|
||||
values.expected.to_string(),
|
||||
values.found.to_string())
|
||||
}
|
||||
terr_float_mismatch(ref values) => {
|
||||
format!("expected `{}` but found `{}`",
|
||||
values.expected.to_str(),
|
||||
values.found.to_str())
|
||||
values.expected.to_string(),
|
||||
values.found.to_string())
|
||||
}
|
||||
terr_variadic_mismatch(ref values) => {
|
||||
format!("expected {} fn but found {} function",
|
||||
@ -3701,7 +3701,7 @@ pub fn substd_enum_variants(cx: &ctxt,
|
||||
}
|
||||
|
||||
pub fn item_path_str(cx: &ctxt, id: ast::DefId) -> String {
|
||||
with_path(cx, id, |path| ast_map::path_to_str(path)).to_string()
|
||||
with_path(cx, id, |path| ast_map::path_to_string(path)).to_string()
|
||||
}
|
||||
|
||||
pub enum DtorKind {
|
||||
@ -3973,7 +3973,7 @@ fn each_super_struct(cx: &ctxt, mut did: ast::DefId, f: |ast::DefId|) {
|
||||
None => {
|
||||
cx.sess.bug(
|
||||
format!("ID not mapped to super-struct: {}",
|
||||
cx.map.node_to_str(did.node)).as_slice());
|
||||
cx.map.node_to_string(did.node)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3995,7 +3995,7 @@ pub fn lookup_struct_fields(cx: &ctxt, did: ast::DefId) -> Vec<field_ty> {
|
||||
_ => {
|
||||
cx.sess.bug(
|
||||
format!("ID not mapped to struct fields: {}",
|
||||
cx.map.node_to_str(did.node)).as_slice());
|
||||
cx.map.node_to_string(did.node)).as_slice());
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -4621,7 +4621,7 @@ pub fn hash_crate_independent(tcx: &ctxt, t: t, svh: &Svh) -> u64 {
|
||||
}
|
||||
|
||||
impl Variance {
|
||||
pub fn to_str(self) -> &'static str {
|
||||
pub fn to_string(self) -> &'static str {
|
||||
match self {
|
||||
Covariant => "+",
|
||||
Contravariant => "-",
|
||||
|
@ -66,7 +66,7 @@ use syntax::abi;
|
||||
use syntax::{ast, ast_util};
|
||||
use syntax::codemap::Span;
|
||||
use syntax::owned_slice::OwnedSlice;
|
||||
use syntax::print::pprust::{lifetime_to_str, path_to_str};
|
||||
use syntax::print::pprust::{lifetime_to_string, path_to_string};
|
||||
|
||||
pub trait AstConv {
|
||||
fn tcx<'a>(&'a self) -> &'a ty::ctxt;
|
||||
@ -108,7 +108,7 @@ pub fn ast_region_to_region(tcx: &ty::ctxt, lifetime: &ast::Lifetime)
|
||||
};
|
||||
|
||||
debug!("ast_region_to_region(lifetime={} id={}) yields {}",
|
||||
lifetime_to_str(lifetime),
|
||||
lifetime_to_string(lifetime),
|
||||
lifetime.id, r.repr(tcx));
|
||||
|
||||
r
|
||||
@ -142,7 +142,7 @@ pub fn opt_ast_region_to_region<AC:AstConv,RS:RegionScope>(
|
||||
};
|
||||
|
||||
debug!("opt_ast_region_to_region(opt_lifetime={:?}) yields {}",
|
||||
opt_lifetime.as_ref().map(|e| lifetime_to_str(e)),
|
||||
opt_lifetime.as_ref().map(|e| lifetime_to_string(e)),
|
||||
r.repr(this.tcx()));
|
||||
|
||||
r
|
||||
@ -331,7 +331,7 @@ pub fn ast_ty_to_prim_ty(tcx: &ty::ctxt, ast_ty: &ast::Ty) -> Option<ty::t> {
|
||||
None => {
|
||||
tcx.sess.span_bug(ast_ty.span,
|
||||
format!("unbound path {}",
|
||||
path_to_str(path)).as_slice())
|
||||
path_to_string(path)).as_slice())
|
||||
}
|
||||
Some(&d) => d
|
||||
};
|
||||
@ -394,7 +394,7 @@ pub fn ast_ty_to_builtin_ty<AC:AstConv,
|
||||
.sess
|
||||
.span_bug(ast_ty.span,
|
||||
format!("unbound path {}",
|
||||
path_to_str(path)).as_slice())
|
||||
path_to_string(path)).as_slice())
|
||||
}
|
||||
Some(&d) => d
|
||||
};
|
||||
@ -793,7 +793,7 @@ pub fn ast_ty_to_ty<AC:AstConv, RS:RegionScope>(
|
||||
tcx.sess
|
||||
.span_bug(ast_ty.span,
|
||||
format!("unbound path {}",
|
||||
path_to_str(path)).as_slice())
|
||||
path_to_string(path)).as_slice())
|
||||
}
|
||||
Some(&d) => d
|
||||
};
|
||||
@ -808,7 +808,7 @@ pub fn ast_ty_to_ty<AC:AstConv, RS:RegionScope>(
|
||||
}
|
||||
match a_def {
|
||||
def::DefTrait(_) => {
|
||||
let path_str = path_to_str(path);
|
||||
let path_str = path_to_string(path);
|
||||
tcx.sess.span_err(
|
||||
ast_ty.span,
|
||||
format!("reference to trait `{name}` where a \
|
||||
@ -835,7 +835,7 @@ pub fn ast_ty_to_ty<AC:AstConv, RS:RegionScope>(
|
||||
def::DefMod(id) => {
|
||||
tcx.sess.span_fatal(ast_ty.span,
|
||||
format!("found module name used as a type: {}",
|
||||
tcx.map.node_to_str(id.node)).as_slice());
|
||||
tcx.map.node_to_string(id.node)).as_slice());
|
||||
}
|
||||
def::DefPrimTy(_) => {
|
||||
fail!("DefPrimTy arm missed in previous ast_ty_to_prim_ty call");
|
||||
|
@ -399,11 +399,11 @@ pub fn check_struct_like_enum_variant_pat(pcx: &pat_ctxt,
|
||||
variant_id, substitutions, etc);
|
||||
}
|
||||
Some(&def::DefStruct(..)) | Some(&def::DefVariant(..)) => {
|
||||
let name = pprust::path_to_str(path);
|
||||
let name = pprust::path_to_string(path);
|
||||
tcx.sess.span_err(span,
|
||||
format!("mismatched types: expected `{}` but \
|
||||
found `{}`",
|
||||
fcx.infcx().ty_to_str(expected),
|
||||
fcx.infcx().ty_to_string(expected),
|
||||
name).as_slice());
|
||||
}
|
||||
_ => {
|
||||
@ -525,9 +525,9 @@ pub fn check_pat(pcx: &pat_ctxt, pat: &ast::Pat, expected: ty::t) {
|
||||
.span_err(path.span,
|
||||
format!("`{}` does not name the \
|
||||
structure `{}`",
|
||||
pprust::path_to_str(path),
|
||||
pprust::path_to_string(path),
|
||||
fcx.infcx()
|
||||
.ty_to_str(expected)).as_slice())
|
||||
.ty_to_string(expected)).as_slice())
|
||||
}
|
||||
|
||||
check_struct_pat(pcx, pat.id, pat.span, expected, path,
|
||||
@ -747,7 +747,7 @@ fn check_pointer_pat(pcx: &pat_ctxt,
|
||||
tcx.sess.span_err(
|
||||
span,
|
||||
format!("type `{}` cannot be dereferenced",
|
||||
fcx.infcx().ty_to_str(expected)).as_slice());
|
||||
fcx.infcx().ty_to_string(expected)).as_slice());
|
||||
fcx.write_error(pat_id);
|
||||
}
|
||||
_ => {
|
||||
|
@ -30,14 +30,14 @@ itself (note that inherent impls can only be defined in the same
|
||||
module as the type itself).
|
||||
|
||||
Inherent candidates are not always derived from impls. If you have a
|
||||
trait instance, such as a value of type `Box<ToStr>`, then the trait
|
||||
methods (`to_str()`, in this case) are inherently associated with it.
|
||||
trait instance, such as a value of type `Box<ToString>`, then the trait
|
||||
methods (`to_string()`, in this case) are inherently associated with it.
|
||||
Another case is type parameters, in which case the methods of their
|
||||
bounds are inherent.
|
||||
|
||||
Extension candidates are derived from imported traits. If I have the
|
||||
trait `ToStr` imported, and I call `to_str()` on a value of type `T`,
|
||||
then we will go off to find out whether there is an impl of `ToStr`
|
||||
trait `ToString` imported, and I call `to_string()` on a value of type `T`,
|
||||
then we will go off to find out whether there is an impl of `ToString`
|
||||
for `T`. These kinds of method calls are called "extension methods".
|
||||
They can be defined in any module, not only the one that defined `T`.
|
||||
Furthermore, you must import the trait to call such a method.
|
||||
@ -376,7 +376,7 @@ impl<'a> LookupContext<'a> {
|
||||
autoderefs: uint)
|
||||
-> Option<Option<MethodCallee>> {
|
||||
debug!("search_step: self_ty={} autoderefs={}",
|
||||
self.ty_to_str(self_ty), autoderefs);
|
||||
self.ty_to_string(self_ty), autoderefs);
|
||||
|
||||
match self.deref_args {
|
||||
check::DontDerefArgs => {
|
||||
@ -508,7 +508,7 @@ impl<'a> LookupContext<'a> {
|
||||
did: DefId,
|
||||
substs: &subst::Substs) {
|
||||
debug!("push_inherent_candidates_from_object(did={}, substs={})",
|
||||
self.did_to_str(did),
|
||||
self.did_to_string(did),
|
||||
substs.repr(self.tcx()));
|
||||
let _indenter = indenter();
|
||||
let tcx = self.tcx();
|
||||
@ -733,7 +733,7 @@ impl<'a> LookupContext<'a> {
|
||||
None => None,
|
||||
Some(method) => {
|
||||
debug!("(searching for autoderef'd method) writing \
|
||||
adjustment {:?} for {}", adjustment, self.ty_to_str( self_ty));
|
||||
adjustment {:?} for {}", adjustment, self.ty_to_string( self_ty));
|
||||
match adjustment {
|
||||
Some((self_expr_id, adj)) => {
|
||||
self.fcx.write_adjustment(self_expr_id, adj);
|
||||
@ -809,7 +809,7 @@ impl<'a> LookupContext<'a> {
|
||||
|
||||
fn auto_slice_vec(&self, mt: ty::mt, autoderefs: uint) -> Option<MethodCallee> {
|
||||
let tcx = self.tcx();
|
||||
debug!("auto_slice_vec {}", ppaux::ty_to_str(tcx, mt.ty));
|
||||
debug!("auto_slice_vec {}", ppaux::ty_to_string(tcx, mt.ty));
|
||||
|
||||
// First try to borrow to a slice
|
||||
let entry = self.search_for_some_kind_of_autorefd_method(
|
||||
@ -886,7 +886,7 @@ impl<'a> LookupContext<'a> {
|
||||
* `~[]` to `&[]`.
|
||||
*/
|
||||
|
||||
debug!("search_for_autosliced_method {}", ppaux::ty_to_str(self.tcx(), self_ty));
|
||||
debug!("search_for_autosliced_method {}", ppaux::ty_to_string(self.tcx(), self_ty));
|
||||
|
||||
let sty = ty::get(self_ty).sty.clone();
|
||||
match sty {
|
||||
@ -939,7 +939,7 @@ impl<'a> LookupContext<'a> {
|
||||
|
||||
ty_infer(TyVar(_)) => {
|
||||
self.bug(format!("unexpected type: {}",
|
||||
self.ty_to_str(self_ty)).as_slice());
|
||||
self.ty_to_string(self_ty)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -993,7 +993,7 @@ impl<'a> LookupContext<'a> {
|
||||
}
|
||||
|
||||
fn search_for_method(&self, rcvr_ty: ty::t) -> Option<MethodCallee> {
|
||||
debug!("search_for_method(rcvr_ty={})", self.ty_to_str(rcvr_ty));
|
||||
debug!("search_for_method(rcvr_ty={})", self.ty_to_string(rcvr_ty));
|
||||
let _indenter = indenter();
|
||||
|
||||
// I am not sure that inherent methods should have higher
|
||||
@ -1094,7 +1094,7 @@ impl<'a> LookupContext<'a> {
|
||||
let tcx = self.tcx();
|
||||
|
||||
debug!("confirm_candidate(rcvr_ty={}, candidate={})",
|
||||
self.ty_to_str(rcvr_ty),
|
||||
self.ty_to_string(rcvr_ty),
|
||||
candidate.repr(self.tcx()));
|
||||
|
||||
self.enforce_object_limitations(candidate);
|
||||
@ -1177,7 +1177,7 @@ impl<'a> LookupContext<'a> {
|
||||
fn_style: bare_fn_ty.fn_style,
|
||||
abi: bare_fn_ty.abi.clone(),
|
||||
});
|
||||
debug!("after replacing bound regions, fty={}", self.ty_to_str(fty));
|
||||
debug!("after replacing bound regions, fty={}", self.ty_to_string(fty));
|
||||
|
||||
// Before, we only checked whether self_ty could be a subtype
|
||||
// of rcvr_ty; now we actually make it so (this may cause
|
||||
@ -1191,8 +1191,8 @@ impl<'a> LookupContext<'a> {
|
||||
Err(_) => {
|
||||
self.bug(format!(
|
||||
"{} was a subtype of {} but now is not?",
|
||||
self.ty_to_str(rcvr_ty),
|
||||
self.ty_to_str(transformed_self_ty)).as_slice());
|
||||
self.ty_to_string(rcvr_ty),
|
||||
self.ty_to_string(transformed_self_ty)).as_slice());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1288,7 +1288,7 @@ impl<'a> LookupContext<'a> {
|
||||
// candidate method's `self_ty`.
|
||||
fn is_relevant(&self, rcvr_ty: ty::t, candidate: &Candidate) -> bool {
|
||||
debug!("is_relevant(rcvr_ty={}, candidate={})",
|
||||
self.ty_to_str(rcvr_ty), candidate.repr(self.tcx()));
|
||||
self.ty_to_string(rcvr_ty), candidate.repr(self.tcx()));
|
||||
|
||||
return match candidate.method_ty.explicit_self {
|
||||
SelfStatic => {
|
||||
@ -1457,11 +1457,11 @@ impl<'a> LookupContext<'a> {
|
||||
self.fcx.tcx()
|
||||
}
|
||||
|
||||
fn ty_to_str(&self, t: ty::t) -> String {
|
||||
self.fcx.infcx().ty_to_str(t)
|
||||
fn ty_to_string(&self, t: ty::t) -> String {
|
||||
self.fcx.infcx().ty_to_string(t)
|
||||
}
|
||||
|
||||
fn did_to_str(&self, did: DefId) -> String {
|
||||
fn did_to_string(&self, did: DefId) -> String {
|
||||
ty::item_path_str(self.tcx(), did)
|
||||
}
|
||||
|
||||
|
@ -397,8 +397,8 @@ impl<'a> Visitor<()> for GatherLocalsVisitor<'a> {
|
||||
};
|
||||
self.assign(local.id, o_ty);
|
||||
debug!("Local variable {} is assigned type {}",
|
||||
self.fcx.pat_to_str(&*local.pat),
|
||||
self.fcx.infcx().ty_to_str(
|
||||
self.fcx.pat_to_string(&*local.pat),
|
||||
self.fcx.infcx().ty_to_string(
|
||||
self.fcx.inh.locals.borrow().get_copy(&local.id)));
|
||||
visit::walk_local(self, local, ());
|
||||
}
|
||||
@ -411,7 +411,7 @@ impl<'a> Visitor<()> for GatherLocalsVisitor<'a> {
|
||||
self.assign(p.id, None);
|
||||
debug!("Pattern binding {} is assigned to {}",
|
||||
token::get_ident(path1.node),
|
||||
self.fcx.infcx().ty_to_str(
|
||||
self.fcx.infcx().ty_to_string(
|
||||
self.fcx.inh.locals.borrow().get_copy(&p.id)));
|
||||
}
|
||||
_ => {}
|
||||
@ -534,7 +534,7 @@ fn span_for_field(tcx: &ty::ctxt, field: &ty::field_ty, struct_id: ast::DefId) -
|
||||
let item = match tcx.map.find(struct_id.node) {
|
||||
Some(ast_map::NodeItem(item)) => item,
|
||||
None => fail!("node not in ast map: {}", struct_id.node),
|
||||
_ => fail!("expected item, found {}", tcx.map.node_to_str(struct_id.node))
|
||||
_ => fail!("expected item, found {}", tcx.map.node_to_string(struct_id.node))
|
||||
};
|
||||
|
||||
match item.node {
|
||||
@ -803,7 +803,7 @@ fn check_impl_methods_against_trait(ccx: &CrateCtxt,
|
||||
format!(
|
||||
"method `{}` is not a member of trait `{}`",
|
||||
token::get_ident(impl_method_ty.ident),
|
||||
pprust::path_to_str(&ast_trait_ref.path)).as_slice());
|
||||
pprust::path_to_string(&ast_trait_ref.path)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -870,7 +870,7 @@ fn compare_impl_method(tcx: &ty::ctxt,
|
||||
format!("method `{}` has a `{}` declaration in the impl, \
|
||||
but not in the trait",
|
||||
token::get_ident(trait_m.ident),
|
||||
pprust::explicit_self_to_str(
|
||||
pprust::explicit_self_to_string(
|
||||
impl_m.explicit_self)).as_slice());
|
||||
return;
|
||||
}
|
||||
@ -880,7 +880,7 @@ fn compare_impl_method(tcx: &ty::ctxt,
|
||||
format!("method `{}` has a `{}` declaration in the trait, \
|
||||
but not in the impl",
|
||||
token::get_ident(trait_m.ident),
|
||||
pprust::explicit_self_to_str(
|
||||
pprust::explicit_self_to_string(
|
||||
trait_m.explicit_self)).as_slice());
|
||||
return;
|
||||
}
|
||||
@ -1051,7 +1051,7 @@ fn compare_impl_method(tcx: &ty::ctxt,
|
||||
declaration",
|
||||
token::get_ident(trait_m.ident),
|
||||
i,
|
||||
ppaux::trait_ref_to_str(
|
||||
ppaux::trait_ref_to_string(
|
||||
tcx,
|
||||
&*impl_trait_bound)).as_slice())
|
||||
}
|
||||
@ -1101,8 +1101,8 @@ fn check_cast(fcx: &FnCtxt,
|
||||
|
||||
let t_e = fcx.expr_ty(e);
|
||||
|
||||
debug!("t_1={}", fcx.infcx().ty_to_str(t_1));
|
||||
debug!("t_e={}", fcx.infcx().ty_to_str(t_e));
|
||||
debug!("t_1={}", fcx.infcx().ty_to_string(t_1));
|
||||
debug!("t_e={}", fcx.infcx().ty_to_string(t_e));
|
||||
|
||||
if ty::type_is_error(t_e) {
|
||||
fcx.write_error(id);
|
||||
@ -1126,13 +1126,13 @@ fn check_cast(fcx: &FnCtxt,
|
||||
fcx.type_error_message(span, |actual| {
|
||||
format!("cast from nil: `{}` as `{}`",
|
||||
actual,
|
||||
fcx.infcx().ty_to_str(t_1))
|
||||
fcx.infcx().ty_to_string(t_1))
|
||||
}, t_e, None);
|
||||
} else if ty::type_is_nil(t_1) {
|
||||
fcx.type_error_message(span, |actual| {
|
||||
format!("cast to nil: `{}` as `{}`",
|
||||
actual,
|
||||
fcx.infcx().ty_to_str(t_1))
|
||||
fcx.infcx().ty_to_string(t_1))
|
||||
}, t_e, None);
|
||||
}
|
||||
|
||||
@ -1149,7 +1149,7 @@ fn check_cast(fcx: &FnCtxt,
|
||||
format!("illegal cast; cast through an \
|
||||
integer first: `{}` as `{}`",
|
||||
actual,
|
||||
fcx.infcx().ty_to_str(t_1))
|
||||
fcx.infcx().ty_to_string(t_1))
|
||||
}, t_e, None);
|
||||
}
|
||||
// casts from C-like enums are allowed
|
||||
@ -1217,7 +1217,7 @@ fn check_cast(fcx: &FnCtxt,
|
||||
fcx.type_error_message(span, |actual| {
|
||||
format!("non-scalar cast: `{}` as `{}`",
|
||||
actual,
|
||||
fcx.infcx().ty_to_str(t_1))
|
||||
fcx.infcx().ty_to_string(t_1))
|
||||
}, t_e, None);
|
||||
}
|
||||
|
||||
@ -1286,7 +1286,7 @@ impl<'a> FnCtxt<'a> {
|
||||
#[inline]
|
||||
pub fn write_ty(&self, node_id: ast::NodeId, ty: ty::t) {
|
||||
debug!("write_ty({}, {}) in fcx {}",
|
||||
node_id, ppaux::ty_to_str(self.tcx(), ty), self.tag());
|
||||
node_id, ppaux::ty_to_string(self.tcx(), ty), self.tag());
|
||||
self.inh.node_types.borrow_mut().insert(node_id, ty);
|
||||
}
|
||||
|
||||
@ -1343,7 +1343,7 @@ impl<'a> FnCtxt<'a> {
|
||||
ast_ty_to_ty(self, self.infcx(), ast_t)
|
||||
}
|
||||
|
||||
pub fn pat_to_str(&self, pat: &ast::Pat) -> String {
|
||||
pub fn pat_to_string(&self, pat: &ast::Pat) -> String {
|
||||
pat.repr(self.tcx())
|
||||
}
|
||||
|
||||
@ -1363,7 +1363,7 @@ impl<'a> FnCtxt<'a> {
|
||||
None => {
|
||||
self.tcx().sess.bug(
|
||||
format!("no type for node {}: {} in fcx {}",
|
||||
id, self.tcx().map.node_to_str(id),
|
||||
id, self.tcx().map.node_to_string(id),
|
||||
self.tag()).as_slice());
|
||||
}
|
||||
}
|
||||
@ -1375,7 +1375,7 @@ impl<'a> FnCtxt<'a> {
|
||||
None => {
|
||||
self.tcx().sess.bug(
|
||||
format!("no method entry for node {}: {} in fcx {}",
|
||||
id, self.tcx().map.node_to_str(id),
|
||||
id, self.tcx().map.node_to_string(id),
|
||||
self.tag()).as_slice());
|
||||
}
|
||||
}
|
||||
@ -1842,7 +1842,7 @@ fn check_argument_types(fcx: &FnCtxt,
|
||||
};
|
||||
|
||||
debug!("check_argument_types: formal_tys={:?}",
|
||||
formal_tys.iter().map(|t| fcx.infcx().ty_to_str(*t)).collect::<Vec<String>>());
|
||||
formal_tys.iter().map(|t| fcx.infcx().ty_to_string(*t)).collect::<Vec<String>>());
|
||||
|
||||
// Check the arguments.
|
||||
// We do this in a pretty awful way: first we typecheck any arguments
|
||||
@ -2410,7 +2410,7 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
operation `{}` not \
|
||||
supported for floating \
|
||||
point SIMD vector `{}`",
|
||||
ast_util::binop_to_str(op),
|
||||
ast_util::binop_to_string(op),
|
||||
actual)
|
||||
},
|
||||
lhs_t,
|
||||
@ -2440,7 +2440,7 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
|actual| {
|
||||
format!("binary operation `{}` cannot be applied \
|
||||
to type `{}`",
|
||||
ast_util::binop_to_str(op),
|
||||
ast_util::binop_to_string(op),
|
||||
actual)
|
||||
},
|
||||
lhs_t,
|
||||
@ -2457,7 +2457,7 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
operation `{}=` \
|
||||
cannot be applied to \
|
||||
type `{}`",
|
||||
ast_util::binop_to_str(op),
|
||||
ast_util::binop_to_string(op),
|
||||
actual)
|
||||
},
|
||||
lhs_t,
|
||||
@ -2506,7 +2506,7 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
trait_did, [lhs_expr, rhs], DontAutoderefReceiver, || {
|
||||
fcx.type_error_message(ex.span, |actual| {
|
||||
format!("binary operation `{}` cannot be applied to type `{}`",
|
||||
ast_util::binop_to_str(op),
|
||||
ast_util::binop_to_string(op),
|
||||
actual)
|
||||
}, lhs_resolved_t, None)
|
||||
})
|
||||
@ -2594,7 +2594,7 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
expected_sig);
|
||||
let fty_sig = fn_ty.sig.clone();
|
||||
let fty = ty::mk_closure(tcx, fn_ty);
|
||||
debug!("check_expr_fn fty={}", fcx.infcx().ty_to_str(fty));
|
||||
debug!("check_expr_fn fty={}", fcx.infcx().ty_to_string(fty));
|
||||
|
||||
fcx.write_ty(expr.id, fty);
|
||||
|
||||
@ -2628,7 +2628,7 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
autoderef(fcx, expr.span, expr_t, Some(base.id), lvalue_pref, |base_t, _| {
|
||||
match ty::get(base_t).sty {
|
||||
ty::ty_struct(base_id, ref substs) => {
|
||||
debug!("struct named {}", ppaux::ty_to_str(tcx, base_t));
|
||||
debug!("struct named {}", ppaux::ty_to_string(tcx, base_t));
|
||||
let fields = ty::lookup_struct_fields(tcx, base_id);
|
||||
lookup_field_ty(tcx, base_id, fields.as_slice(),
|
||||
field.node.name, &(*substs))
|
||||
@ -3386,7 +3386,7 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
tcx.sess
|
||||
.span_err(path.span,
|
||||
format!("`{}` does not name a structure",
|
||||
pprust::path_to_str(
|
||||
pprust::path_to_string(
|
||||
path)).as_slice())
|
||||
}
|
||||
}
|
||||
@ -3454,10 +3454,10 @@ fn check_expr_with_unifier(fcx: &FnCtxt,
|
||||
}
|
||||
|
||||
debug!("type of expr({}) {} is...", expr.id,
|
||||
syntax::print::pprust::expr_to_str(expr));
|
||||
syntax::print::pprust::expr_to_string(expr));
|
||||
debug!("... {}, expected is {}",
|
||||
ppaux::ty_to_str(tcx, fcx.expr_ty(expr)),
|
||||
expected.repr(tcx))
|
||||
ppaux::ty_to_string(tcx, fcx.expr_ty(expr)),
|
||||
expected.repr(tcx));
|
||||
|
||||
unifier();
|
||||
}
|
||||
@ -3792,7 +3792,7 @@ pub fn check_instantiable(tcx: &ty::ctxt,
|
||||
format!("this type cannot be instantiated without an \
|
||||
instance of itself; consider using \
|
||||
`Option<{}>`",
|
||||
ppaux::ty_to_str(tcx, item_ty)).as_slice());
|
||||
ppaux::ty_to_string(tcx, item_ty)).as_slice());
|
||||
false
|
||||
} else {
|
||||
true
|
||||
@ -3853,7 +3853,7 @@ pub fn check_enum_variants_sized(ccx: &CrateCtxt,
|
||||
dynamically sized types may only \
|
||||
appear as the final type in a \
|
||||
variant",
|
||||
ppaux::ty_to_str(ccx.tcx,
|
||||
ppaux::ty_to_string(ccx.tcx,
|
||||
*t)).as_slice());
|
||||
}
|
||||
}
|
||||
@ -3918,7 +3918,7 @@ pub fn check_enum_variants(ccx: &CrateCtxt,
|
||||
|
||||
match v.node.disr_expr {
|
||||
Some(e) => {
|
||||
debug!("disr expr, checking {}", pprust::expr_to_str(&*e));
|
||||
debug!("disr expr, checking {}", pprust::expr_to_string(&*e));
|
||||
|
||||
let inh = blank_inherited_fields(ccx);
|
||||
let fcx = blank_fn_ctxt(ccx, &inh, rty, e.id);
|
||||
@ -4522,7 +4522,7 @@ pub fn check_bounds_are_used(ccx: &CrateCtxt,
|
||||
tps: &OwnedSlice<ast::TyParam>,
|
||||
ty: ty::t) {
|
||||
debug!("check_bounds_are_used(n_tps={}, ty={})",
|
||||
tps.len(), ppaux::ty_to_str(ccx.tcx, ty));
|
||||
tps.len(), ppaux::ty_to_string(ccx.tcx, ty));
|
||||
|
||||
// make a vector of booleans initially false, set to true when used
|
||||
if tps.len() == 0u { return; }
|
||||
@ -4840,7 +4840,7 @@ pub fn check_intrinsic_type(ccx: &CrateCtxt, it: &ast::ForeignItem) {
|
||||
fty,
|
||||
|| {
|
||||
format!("intrinsic has wrong type: expected `{}`",
|
||||
ppaux::ty_to_str(ccx.tcx, fty))
|
||||
ppaux::ty_to_string(ccx.tcx, fty))
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -133,7 +133,7 @@ use middle::typeck::infer;
|
||||
use middle::typeck::MethodCall;
|
||||
use middle::pat_util;
|
||||
use util::nodemap::NodeMap;
|
||||
use util::ppaux::{ty_to_str, region_to_str, Repr};
|
||||
use util::ppaux::{ty_to_string, region_to_string, Repr};
|
||||
|
||||
use syntax::ast;
|
||||
use syntax::codemap::Span;
|
||||
@ -876,7 +876,7 @@ fn constrain_autoderefs(rcx: &mut Rcx,
|
||||
let r_deref_expr = ty::ReScope(deref_expr.id);
|
||||
for i in range(0u, derefs) {
|
||||
debug!("constrain_autoderefs(deref_expr=?, derefd_ty={}, derefs={:?}/{:?}",
|
||||
rcx.fcx.infcx().ty_to_str(derefd_ty),
|
||||
rcx.fcx.infcx().ty_to_string(derefd_ty),
|
||||
i, derefs);
|
||||
|
||||
let method_call = MethodCall::autoderef(deref_expr.id, i);
|
||||
@ -948,7 +948,7 @@ fn constrain_index(rcx: &mut Rcx,
|
||||
*/
|
||||
|
||||
debug!("constrain_index(index_expr=?, indexed_ty={}",
|
||||
rcx.fcx.infcx().ty_to_str(indexed_ty));
|
||||
rcx.fcx.infcx().ty_to_string(indexed_ty));
|
||||
|
||||
let r_index_expr = ty::ReScope(index_expr.id);
|
||||
match ty::get(indexed_ty).sty {
|
||||
@ -984,7 +984,7 @@ fn constrain_regions_in_type_of_node(
|
||||
|method_call| rcx.resolve_method_type(method_call));
|
||||
debug!("constrain_regions_in_type_of_node(\
|
||||
ty={}, ty0={}, id={}, minimum_lifetime={:?})",
|
||||
ty_to_str(tcx, ty), ty_to_str(tcx, ty0),
|
||||
ty_to_string(tcx, ty), ty_to_string(tcx, ty0),
|
||||
id, minimum_lifetime);
|
||||
constrain_regions_in_type(rcx, minimum_lifetime, origin, ty);
|
||||
}
|
||||
@ -1011,8 +1011,8 @@ fn constrain_regions_in_type(
|
||||
let tcx = rcx.fcx.ccx.tcx;
|
||||
|
||||
debug!("constrain_regions_in_type(minimum_lifetime={}, ty={})",
|
||||
region_to_str(tcx, "", false, minimum_lifetime),
|
||||
ty_to_str(tcx, ty));
|
||||
region_to_string(tcx, "", false, minimum_lifetime),
|
||||
ty_to_string(tcx, ty));
|
||||
|
||||
relate_nested_regions(tcx, Some(minimum_lifetime), ty, |r_sub, r_sup| {
|
||||
debug!("relate_nested_regions(r_sub={}, r_sup={})",
|
||||
@ -1190,7 +1190,7 @@ fn link_region_from_node_type(rcx: &Rcx,
|
||||
let rptr_ty = rcx.resolve_node_type(id);
|
||||
if !ty::type_is_bot(rptr_ty) && !ty::type_is_error(rptr_ty) {
|
||||
let tcx = rcx.fcx.ccx.tcx;
|
||||
debug!("rptr_ty={}", ty_to_str(tcx, rptr_ty));
|
||||
debug!("rptr_ty={}", ty_to_string(tcx, rptr_ty));
|
||||
let r = ty::ty_region(tcx, span, rptr_ty);
|
||||
link_region(rcx, span, r, ty::BorrowKind::from_mutbl(mutbl),
|
||||
cmt_borrowed);
|
||||
|
@ -30,7 +30,7 @@ pub fn replace_late_bound_regions_in_fn_sig(
|
||||
let mut map = HashMap::new();
|
||||
let fn_sig = {
|
||||
let mut f = ty_fold::RegionFolder::regions(tcx, |r| {
|
||||
debug!("region r={}", r.to_str());
|
||||
debug!("region r={}", r.to_string());
|
||||
match r {
|
||||
ty::ReLateBound(s, br) if s == fn_sig.binder_id => {
|
||||
*map.find_or_insert_with(br, |_| mapf(br))
|
||||
@ -153,7 +153,7 @@ pub fn relate_free_regions(tcx: &ty::ctxt, fn_sig: &ty::FnSig) {
|
||||
}
|
||||
|
||||
for &t in all_tys.iter() {
|
||||
debug!("relate_free_regions(t={})", ppaux::ty_to_str(tcx, t));
|
||||
debug!("relate_free_regions(t={})", ppaux::ty_to_string(tcx, t));
|
||||
relate_nested_regions(tcx, None, t, |a, b| {
|
||||
match (&a, &b) {
|
||||
(&ty::ReFree(free_a), &ty::ReFree(free_b)) => {
|
||||
|
@ -16,7 +16,7 @@ use middle::typeck::astconv::AstConv;
|
||||
use middle::typeck::check::{FnCtxt, impl_self_ty};
|
||||
use middle::typeck::check::{structurally_resolved_type};
|
||||
use middle::typeck::check::writeback;
|
||||
use middle::typeck::infer::fixup_err_to_str;
|
||||
use middle::typeck::infer::fixup_err_to_string;
|
||||
use middle::typeck::infer::{resolve_and_force_all_but_regions, resolve_type};
|
||||
use middle::typeck::infer;
|
||||
use middle::typeck::{vtable_origin, vtable_res, vtable_param_res};
|
||||
@ -35,7 +35,7 @@ use std::collections::HashSet;
|
||||
use syntax::ast;
|
||||
use syntax::ast_util;
|
||||
use syntax::codemap::Span;
|
||||
use syntax::print::pprust::expr_to_str;
|
||||
use syntax::print::pprust::expr_to_string;
|
||||
use syntax::visit;
|
||||
use syntax::visit::Visitor;
|
||||
|
||||
@ -154,8 +154,8 @@ fn lookup_vtables_for_param(vcx: &VtableContext,
|
||||
vcx.tcx().sess.span_fatal(span,
|
||||
format!("failed to find an implementation of \
|
||||
trait {} for {}",
|
||||
vcx.infcx.trait_ref_to_str(&*trait_ref),
|
||||
vcx.infcx.ty_to_str(ty)).as_slice());
|
||||
vcx.infcx.trait_ref_to_string(&*trait_ref),
|
||||
vcx.infcx.ty_to_string(ty)).as_slice());
|
||||
}
|
||||
}
|
||||
true
|
||||
@ -205,8 +205,8 @@ fn relate_trait_refs(vcx: &VtableContext,
|
||||
let tcx = vcx.tcx();
|
||||
tcx.sess.span_err(span,
|
||||
format!("expected {}, but found {} ({})",
|
||||
ppaux::trait_ref_to_str(tcx, &r_exp_trait_ref),
|
||||
ppaux::trait_ref_to_str(tcx, &r_act_trait_ref),
|
||||
ppaux::trait_ref_to_string(tcx, &r_exp_trait_ref),
|
||||
ppaux::trait_ref_to_string(tcx, &r_act_trait_ref),
|
||||
ty::type_err_to_str(tcx, err)).as_slice());
|
||||
}
|
||||
}
|
||||
@ -385,8 +385,8 @@ fn search_for_vtable(vcx: &VtableContext,
|
||||
|
||||
debug!("(checking vtable) num 2 relating trait \
|
||||
ty {} to of_trait_ref {}",
|
||||
vcx.infcx.trait_ref_to_str(&*trait_ref),
|
||||
vcx.infcx.trait_ref_to_str(&*of_trait_ref));
|
||||
vcx.infcx.trait_ref_to_string(&*trait_ref),
|
||||
vcx.infcx.trait_ref_to_string(&*of_trait_ref));
|
||||
|
||||
relate_trait_refs(vcx, span, of_trait_ref, trait_ref.clone());
|
||||
|
||||
@ -488,7 +488,7 @@ fn fixup_ty(vcx: &VtableContext,
|
||||
tcx.sess.span_fatal(span,
|
||||
format!("cannot determine a type for this bounded type \
|
||||
parameter: {}",
|
||||
fixup_err_to_str(e)).as_slice())
|
||||
fixup_err_to_string(e)).as_slice())
|
||||
}
|
||||
Err(_) => {
|
||||
None
|
||||
@ -527,7 +527,7 @@ pub fn early_resolve_expr(ex: &ast::Expr, fcx: &FnCtxt, is_early: bool) {
|
||||
}
|
||||
|
||||
debug!("vtable: early_resolve_expr() ex with id {:?} (early: {}): {}",
|
||||
ex.id, is_early, expr_to_str(ex));
|
||||
ex.id, is_early, expr_to_string(ex));
|
||||
let _indent = indenter();
|
||||
|
||||
let cx = fcx.ccx;
|
||||
@ -626,7 +626,7 @@ pub fn early_resolve_expr(ex: &ast::Expr, fcx: &FnCtxt, is_early: bool) {
|
||||
ex.span,
|
||||
format!("can only cast an boxed pointer \
|
||||
to a boxed object, not a {}",
|
||||
ty::ty_sort_str(fcx.tcx(), src_ty)).as_slice());
|
||||
ty::ty_sort_string(fcx.tcx(), src_ty)).as_slice());
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
@ -639,7 +639,7 @@ pub fn early_resolve_expr(ex: &ast::Expr, fcx: &FnCtxt, is_early: bool) {
|
||||
ex.span,
|
||||
format!("can only cast an &-pointer \
|
||||
to an &-object, not a {}",
|
||||
ty::ty_sort_str(fcx.tcx(), src_ty)).as_slice());
|
||||
ty::ty_sort_string(fcx.tcx(), src_ty)).as_slice());
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
@ -657,7 +657,7 @@ pub fn early_resolve_expr(ex: &ast::Expr, fcx: &FnCtxt, is_early: bool) {
|
||||
let did = def.def_id();
|
||||
let item_ty = ty::lookup_item_type(cx.tcx, did);
|
||||
debug!("early resolve expr: def {:?} {:?}, {:?}, {}", ex.id, did, def,
|
||||
fcx.infcx().ty_to_str(item_ty.ty));
|
||||
fcx.infcx().ty_to_string(item_ty.ty));
|
||||
debug!("early_resolve_expr: looking up vtables for type params {}",
|
||||
item_ty.generics.types.repr(fcx.tcx()));
|
||||
let vcx = fcx.vtable_context();
|
||||
|
@ -31,7 +31,7 @@ use std::cell::Cell;
|
||||
|
||||
use syntax::ast;
|
||||
use syntax::codemap::Span;
|
||||
use syntax::print::pprust::pat_to_str;
|
||||
use syntax::print::pprust::pat_to_string;
|
||||
use syntax::visit;
|
||||
use syntax::visit::Visitor;
|
||||
|
||||
@ -159,7 +159,7 @@ impl<'cx> Visitor<()> for WritebackCx<'cx> {
|
||||
self.visit_node_id(ResolvingPattern(p.span), p.id);
|
||||
|
||||
debug!("Type for pattern binding {} (id {}) resolved to {}",
|
||||
pat_to_str(p),
|
||||
pat_to_string(p),
|
||||
p.id,
|
||||
ty::node_id_to_type(self.tcx(), p.id).repr(self.tcx()));
|
||||
|
||||
@ -403,7 +403,7 @@ impl<'cx> Resolver<'cx> {
|
||||
span,
|
||||
format!("cannot determine a type for \
|
||||
this expression: {}",
|
||||
infer::fixup_err_to_str(e)).as_slice())
|
||||
infer::fixup_err_to_string(e)).as_slice())
|
||||
}
|
||||
|
||||
ResolvingLocal(span) => {
|
||||
@ -411,7 +411,7 @@ impl<'cx> Resolver<'cx> {
|
||||
span,
|
||||
format!("cannot determine a type for \
|
||||
this local variable: {}",
|
||||
infer::fixup_err_to_str(e)).as_slice())
|
||||
infer::fixup_err_to_string(e)).as_slice())
|
||||
}
|
||||
|
||||
ResolvingPattern(span) => {
|
||||
@ -419,7 +419,7 @@ impl<'cx> Resolver<'cx> {
|
||||
span,
|
||||
format!("cannot determine a type for \
|
||||
this pattern binding: {}",
|
||||
infer::fixup_err_to_str(e)).as_slice())
|
||||
infer::fixup_err_to_string(e)).as_slice())
|
||||
}
|
||||
|
||||
ResolvingUpvar(upvar_id) => {
|
||||
@ -430,8 +430,8 @@ impl<'cx> Resolver<'cx> {
|
||||
captured variable `{}`: {}",
|
||||
ty::local_var_name_str(
|
||||
self.tcx,
|
||||
upvar_id.var_id).get().to_str(),
|
||||
infer::fixup_err_to_str(e)).as_slice());
|
||||
upvar_id.var_id).get().to_string(),
|
||||
infer::fixup_err_to_string(e)).as_slice());
|
||||
}
|
||||
|
||||
ResolvingImplRes(span) => {
|
||||
|
@ -63,7 +63,7 @@ use syntax::codemap;
|
||||
use syntax::owned_slice::OwnedSlice;
|
||||
use syntax::parse::token::special_idents;
|
||||
use syntax::parse::token;
|
||||
use syntax::print::pprust::{path_to_str};
|
||||
use syntax::print::pprust::{path_to_string};
|
||||
use syntax::visit;
|
||||
|
||||
struct CollectItemTypesVisitor<'a> {
|
||||
@ -665,7 +665,7 @@ pub fn instantiate_trait_ref(ccx: &CrateCtxt,
|
||||
ccx.tcx.sess.span_fatal(
|
||||
ast_trait_ref.path.span,
|
||||
format!("`{}` is not a trait",
|
||||
path_to_str(&ast_trait_ref.path)).as_slice());
|
||||
path_to_string(&ast_trait_ref.path)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -844,7 +844,7 @@ pub fn ty_of_item(ccx: &CrateCtxt, it: &ast::Item)
|
||||
debug!("type of {} (id {}) is {}",
|
||||
token::get_ident(it.ident),
|
||||
it.id,
|
||||
ppaux::ty_to_str(tcx, pty.ty));
|
||||
ppaux::ty_to_string(tcx, pty.ty));
|
||||
|
||||
ccx.tcx.tcache.borrow_mut().insert(local_def(it.id), pty.clone());
|
||||
return pty;
|
||||
@ -1144,7 +1144,7 @@ fn ty_generics(ccx: &CrateCtxt,
|
||||
format!("incompatible bounds on type parameter {}, \
|
||||
bound {} does not allow unsized type",
|
||||
token::get_ident(ident),
|
||||
ppaux::trait_ref_to_str(tcx,
|
||||
ppaux::trait_ref_to_string(tcx,
|
||||
&*trait_ref)).as_slice());
|
||||
}
|
||||
true
|
||||
|
@ -90,7 +90,7 @@ use syntax::codemap;
|
||||
use syntax::parse::token;
|
||||
use syntax::print::pprust;
|
||||
use util::ppaux::UserString;
|
||||
use util::ppaux::bound_region_to_str;
|
||||
use util::ppaux::bound_region_to_string;
|
||||
use util::ppaux::note_and_explain_region;
|
||||
|
||||
pub trait ErrorReporting {
|
||||
@ -442,7 +442,7 @@ impl<'a> ErrorReporting for InferCtxt<'a> {
|
||||
ty::local_var_name_str(self.tcx,
|
||||
upvar_id.var_id)
|
||||
.get()
|
||||
.to_str()).as_slice());
|
||||
.to_string()).as_slice());
|
||||
note_and_explain_region(
|
||||
self.tcx,
|
||||
"...the borrowed pointer is valid for ",
|
||||
@ -454,7 +454,7 @@ impl<'a> ErrorReporting for InferCtxt<'a> {
|
||||
ty::local_var_name_str(self.tcx,
|
||||
upvar_id.var_id)
|
||||
.get()
|
||||
.to_str()).as_slice(),
|
||||
.to_string()).as_slice(),
|
||||
sup,
|
||||
"");
|
||||
}
|
||||
@ -500,7 +500,7 @@ impl<'a> ErrorReporting for InferCtxt<'a> {
|
||||
outlive the enclosing closure",
|
||||
ty::local_var_name_str(self.tcx,
|
||||
id).get()
|
||||
.to_str()).as_slice());
|
||||
.to_string()).as_slice());
|
||||
note_and_explain_region(
|
||||
self.tcx,
|
||||
"captured variable is valid for ",
|
||||
@ -1046,7 +1046,7 @@ impl<'a> Rebuilder<'a> {
|
||||
.sess
|
||||
.fatal(format!(
|
||||
"unbound path {}",
|
||||
pprust::path_to_str(path)).as_slice())
|
||||
pprust::path_to_string(path)).as_slice())
|
||||
}
|
||||
Some(&d) => d
|
||||
};
|
||||
@ -1231,7 +1231,7 @@ impl<'a> ErrorReportingHelpers for InferCtxt<'a> {
|
||||
opt_explicit_self: Option<ast::ExplicitSelf_>,
|
||||
generics: &ast::Generics,
|
||||
span: codemap::Span) {
|
||||
let suggested_fn = pprust::fun_to_str(decl, fn_style, ident,
|
||||
let suggested_fn = pprust::fun_to_string(decl, fn_style, ident,
|
||||
opt_explicit_self, generics);
|
||||
let msg = format!("consider using an explicit lifetime \
|
||||
parameter as shown: {}", suggested_fn);
|
||||
@ -1249,11 +1249,11 @@ impl<'a> ErrorReportingHelpers for InferCtxt<'a> {
|
||||
infer::Coercion(_) => " for automatic coercion".to_string(),
|
||||
infer::LateBoundRegion(_, br) => {
|
||||
format!(" for {}in function call",
|
||||
bound_region_to_str(self.tcx, "lifetime parameter ", true, br))
|
||||
bound_region_to_string(self.tcx, "lifetime parameter ", true, br))
|
||||
}
|
||||
infer::BoundRegionInFnType(_, br) => {
|
||||
format!(" for {}in function type",
|
||||
bound_region_to_str(self.tcx, "lifetime parameter ", true, br))
|
||||
bound_region_to_string(self.tcx, "lifetime parameter ", true, br))
|
||||
}
|
||||
infer::EarlyBoundRegion(_, name) => {
|
||||
format!(" for lifetime parameter `{}",
|
||||
@ -1265,7 +1265,7 @@ impl<'a> ErrorReportingHelpers for InferCtxt<'a> {
|
||||
}
|
||||
infer::UpvarRegion(ref upvar_id, _) => {
|
||||
format!(" for capture of `{}` by closure",
|
||||
ty::local_var_name_str(self.tcx, upvar_id.var_id).get().to_str())
|
||||
ty::local_var_name_str(self.tcx, upvar_id.var_id).get().to_string())
|
||||
}
|
||||
};
|
||||
|
||||
@ -1334,7 +1334,7 @@ impl<'a> ErrorReportingHelpers for InferCtxt<'a> {
|
||||
"...so that closure can access `{}`",
|
||||
ty::local_var_name_str(self.tcx, upvar_id.var_id)
|
||||
.get()
|
||||
.to_str()).as_slice())
|
||||
.to_string()).as_slice())
|
||||
}
|
||||
infer::InfStackClosure(span) => {
|
||||
self.tcx.sess.span_note(
|
||||
@ -1359,7 +1359,7 @@ impl<'a> ErrorReportingHelpers for InferCtxt<'a> {
|
||||
does not outlive the enclosing closure",
|
||||
ty::local_var_name_str(
|
||||
self.tcx,
|
||||
id).get().to_str()).as_slice());
|
||||
id).get().to_string()).as_slice());
|
||||
}
|
||||
infer::IndexSlice(span) => {
|
||||
self.tcx.sess.span_note(
|
||||
@ -1508,7 +1508,7 @@ impl LifeGiver {
|
||||
let mut lifetime;
|
||||
loop {
|
||||
let mut s = String::from_str("'");
|
||||
s.push_str(num_to_str(self.counter.get()).as_slice());
|
||||
s.push_str(num_to_string(self.counter.get()).as_slice());
|
||||
if !self.taken.contains(&s) {
|
||||
lifetime = name_to_dummy_lifetime(
|
||||
token::str_to_ident(s.as_slice()).name);
|
||||
@ -1521,7 +1521,7 @@ impl LifeGiver {
|
||||
return lifetime;
|
||||
|
||||
// 0 .. 25 generates a .. z, 26 .. 51 generates aa .. zz, and so on
|
||||
fn num_to_str(counter: uint) -> String {
|
||||
fn num_to_string(counter: uint) -> String {
|
||||
let mut s = String::new();
|
||||
let (n, r) = (counter/26 + 1, counter % 26);
|
||||
let letter: char = from_u32((r+97) as u32).unwrap();
|
||||
|
@ -26,7 +26,7 @@ use syntax::ast::{NormalFn, UnsafeFn, NodeId};
|
||||
use syntax::ast::{Onceness, FnStyle};
|
||||
use std::collections::HashMap;
|
||||
use util::common::{indenter};
|
||||
use util::ppaux::mt_to_str;
|
||||
use util::ppaux::mt_to_string;
|
||||
use util::ppaux::Repr;
|
||||
|
||||
pub struct Glb<'f>(pub CombineFields<'f>); // "greatest lower bound" (common subtype)
|
||||
@ -50,8 +50,8 @@ impl<'f> Combine for Glb<'f> {
|
||||
|
||||
debug!("{}.mts({}, {})",
|
||||
self.tag(),
|
||||
mt_to_str(tcx, a),
|
||||
mt_to_str(tcx, b));
|
||||
mt_to_string(tcx, a),
|
||||
mt_to_string(tcx, b));
|
||||
|
||||
match (a.mutbl, b.mutbl) {
|
||||
// If one side or both is mut, then the GLB must use
|
||||
|
@ -39,7 +39,7 @@ use middle::typeck::infer::*;
|
||||
use middle::typeck::infer::combine::*;
|
||||
use middle::typeck::infer::glb::Glb;
|
||||
use middle::typeck::infer::lub::Lub;
|
||||
use middle::typeck::infer::unify::{Root, UnifyKey};
|
||||
use middle::typeck::infer::unify::*;
|
||||
use middle::typeck::infer::sub::Sub;
|
||||
use util::ppaux::Repr;
|
||||
|
||||
@ -436,8 +436,7 @@ pub enum LatticeVarResult<K,T> {
|
||||
* - If the variables do not both have an upper bound, we will unify
|
||||
* the variables and return the unified variable, in which case the
|
||||
* result is a variable. This is indicated with a `VarResult`
|
||||
* return.
|
||||
*/
|
||||
* return. */
|
||||
pub fn lattice_vars<L:LatticeDir+Combine,
|
||||
T:LatticeValue,
|
||||
K:UnifyKey<Bounds<T>>>(
|
||||
|
@ -25,7 +25,7 @@ use syntax::ast::{Many, Once, NodeId};
|
||||
use syntax::ast::{NormalFn, UnsafeFn};
|
||||
use syntax::ast::{Onceness, FnStyle};
|
||||
use syntax::ast::{MutMutable, MutImmutable};
|
||||
use util::ppaux::mt_to_str;
|
||||
use util::ppaux::mt_to_string;
|
||||
use util::ppaux::Repr;
|
||||
|
||||
pub struct Lub<'f>(pub CombineFields<'f>); // least-upper-bound: common supertype
|
||||
@ -49,8 +49,8 @@ impl<'f> Combine for Lub<'f> {
|
||||
|
||||
debug!("{}.mts({}, {})",
|
||||
self.tag(),
|
||||
mt_to_str(tcx, a),
|
||||
mt_to_str(tcx, b));
|
||||
mt_to_string(tcx, a),
|
||||
mt_to_string(tcx, b));
|
||||
|
||||
if a.mutbl != b.mutbl {
|
||||
return Err(ty::terr_mutability)
|
||||
|
@ -44,7 +44,7 @@ use syntax::ast;
|
||||
use syntax::codemap;
|
||||
use syntax::codemap::Span;
|
||||
use util::common::indent;
|
||||
use util::ppaux::{bound_region_to_str, ty_to_str, trait_ref_to_str, Repr};
|
||||
use util::ppaux::{bound_region_to_string, ty_to_string, trait_ref_to_string, Repr};
|
||||
|
||||
pub mod doc;
|
||||
pub mod macros;
|
||||
@ -245,7 +245,7 @@ pub enum fixup_err {
|
||||
region_var_bound_by_region_var(RegionVid, RegionVid)
|
||||
}
|
||||
|
||||
pub fn fixup_err_to_str(f: fixup_err) -> String {
|
||||
pub fn fixup_err_to_string(f: fixup_err) -> String {
|
||||
match f {
|
||||
unresolved_int_ty(_) => {
|
||||
"cannot determine the type of this integer; add a suffix to \
|
||||
@ -662,19 +662,19 @@ impl<'a> InferCtxt<'a> {
|
||||
self.report_region_errors(&errors); // see error_reporting.rs
|
||||
}
|
||||
|
||||
pub fn ty_to_str(&self, t: ty::t) -> String {
|
||||
ty_to_str(self.tcx,
|
||||
pub fn ty_to_string(&self, t: ty::t) -> String {
|
||||
ty_to_string(self.tcx,
|
||||
self.resolve_type_vars_if_possible(t))
|
||||
}
|
||||
|
||||
pub fn tys_to_str(&self, ts: &[ty::t]) -> String {
|
||||
let tstrs: Vec<String> = ts.iter().map(|t| self.ty_to_str(*t)).collect();
|
||||
pub fn tys_to_string(&self, ts: &[ty::t]) -> String {
|
||||
let tstrs: Vec<String> = ts.iter().map(|t| self.ty_to_string(*t)).collect();
|
||||
format!("({})", tstrs.connect(", "))
|
||||
}
|
||||
|
||||
pub fn trait_ref_to_str(&self, t: &ty::TraitRef) -> String {
|
||||
pub fn trait_ref_to_string(&self, t: &ty::TraitRef) -> String {
|
||||
let t = self.resolve_type_vars_in_trait_ref_if_possible(t);
|
||||
trait_ref_to_str(self.tcx, &t)
|
||||
trait_ref_to_string(self.tcx, &t)
|
||||
}
|
||||
|
||||
pub fn resolve_type_vars_if_possible(&self, typ: ty::t) -> ty::t {
|
||||
@ -707,8 +707,8 @@ impl<'a> InferCtxt<'a> {
|
||||
self.tcx.sess.bug(
|
||||
format!("resolve_type_vars_if_possible() yielded {} \
|
||||
when supplied with {}",
|
||||
self.ty_to_str(dummy0),
|
||||
self.ty_to_str(dummy1)).as_slice());
|
||||
self.ty_to_string(dummy0),
|
||||
self.ty_to_string(dummy1)).as_slice());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -761,7 +761,7 @@ impl<'a> InferCtxt<'a> {
|
||||
Some(e) => {
|
||||
self.tcx.sess.span_err(sp,
|
||||
format!("{}{}",
|
||||
mk_msg(Some(self.ty_to_str(e)), actual_ty),
|
||||
mk_msg(Some(self.ty_to_string(e)), actual_ty),
|
||||
error_str).as_slice());
|
||||
}
|
||||
}
|
||||
@ -783,7 +783,7 @@ impl<'a> InferCtxt<'a> {
|
||||
return;
|
||||
}
|
||||
|
||||
self.type_error_message_str(sp, |_e, a| { mk_msg(a) }, self.ty_to_str(actual_ty), err);
|
||||
self.type_error_message_str(sp, |_e, a| { mk_msg(a) }, self.ty_to_string(actual_ty), err);
|
||||
}
|
||||
|
||||
pub fn report_mismatched_types(&self,
|
||||
@ -800,7 +800,7 @@ impl<'a> InferCtxt<'a> {
|
||||
// if I leave out : String, it infers &str and complains
|
||||
|actual: String| {
|
||||
format!("mismatched types: expected `{}` but found `{}`",
|
||||
self.ty_to_str(resolved_expected),
|
||||
self.ty_to_string(resolved_expected),
|
||||
actual)
|
||||
}
|
||||
}
|
||||
@ -819,7 +819,7 @@ impl<'a> InferCtxt<'a> {
|
||||
let rvar = self.next_region_var(
|
||||
BoundRegionInFnType(trace.origin.span(), br));
|
||||
debug!("Bound region {} maps to {:?}",
|
||||
bound_region_to_str(self.tcx, "", false, br),
|
||||
bound_region_to_string(self.tcx, "", false, br),
|
||||
rvar);
|
||||
rvar
|
||||
});
|
||||
|
@ -56,7 +56,7 @@ use middle::typeck::infer::{unresolved_float_ty, unresolved_int_ty};
|
||||
use middle::typeck::infer::{unresolved_ty};
|
||||
use syntax::codemap::Span;
|
||||
use util::common::indent;
|
||||
use util::ppaux::{Repr, ty_to_str};
|
||||
use util::ppaux::{Repr, ty_to_string};
|
||||
|
||||
pub static resolve_nested_tvar: uint = 0b0000000001;
|
||||
pub static resolve_rvar: uint = 0b0000000010;
|
||||
@ -121,7 +121,7 @@ impl<'a> ResolveState<'a> {
|
||||
self.err = None;
|
||||
|
||||
debug!("Resolving {} (modes={:x})",
|
||||
ty_to_str(self.infcx.tcx, typ),
|
||||
ty_to_string(self.infcx.tcx, typ),
|
||||
self.modes);
|
||||
|
||||
// n.b. This is a hokey mess because the current fold doesn't
|
||||
@ -133,8 +133,8 @@ impl<'a> ResolveState<'a> {
|
||||
match self.err {
|
||||
None => {
|
||||
debug!("Resolved to {} + {} (modes={:x})",
|
||||
ty_to_str(self.infcx.tcx, rty),
|
||||
ty_to_str(self.infcx.tcx, rty),
|
||||
ty_to_string(self.infcx.tcx, rty),
|
||||
ty_to_string(self.infcx.tcx, rty),
|
||||
self.modes);
|
||||
return Ok(rty);
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ use middle::typeck::infer::lub::Lub;
|
||||
use middle::typeck::infer::then;
|
||||
use middle::typeck::infer::{TypeTrace, Subtype};
|
||||
use util::common::{indenter};
|
||||
use util::ppaux::{bound_region_to_str, Repr};
|
||||
use util::ppaux::{bound_region_to_string, Repr};
|
||||
|
||||
use syntax::ast::{Onceness, FnStyle, MutImmutable, MutMutable};
|
||||
|
||||
@ -176,7 +176,7 @@ impl<'f> Combine for Sub<'f> {
|
||||
replace_late_bound_regions_in_fn_sig(self.get_ref().infcx.tcx, b, |br| {
|
||||
let skol = self.get_ref().infcx.region_vars.new_skolemized(br);
|
||||
debug!("Bound region {} skolemized to {:?}",
|
||||
bound_region_to_str(self.get_ref().infcx.tcx, "", false, br),
|
||||
bound_region_to_string(self.get_ref().infcx.tcx, "", false, br),
|
||||
skol);
|
||||
skol
|
||||
})
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user