[[package]]
name = "smol_str"
-version = "0.1.16"
+version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f7909a1d8bc166a862124d84fdc11bda0ea4ed3157ccca662296919c2972db1"
+checksum = "6ca0f7ce3a29234210f0f4f0b56f8be2e722488b95cb522077943212da3b32eb"
dependencies = [
"serde",
]
}
/// Shortcut to create inline plain text name
- const fn new_inline_ascii(text: &[u8]) -> Name {
- Name::new_text(SmolStr::new_inline_from_ascii(text.len(), text))
+ const fn new_inline(text: &str) -> Name {
+ Name::new_text(SmolStr::new_inline(text))
}
/// Resolve a name from the text of token.
$(
#[allow(bad_style)]
pub const $ident: super::Name =
- super::Name::new_inline_ascii(stringify!($ident).as_bytes());
+ super::Name::new_inline(stringify!($ident));
)*
};
}
);
// self/Self cannot be used as an identifier
- pub const SELF_PARAM: super::Name = super::Name::new_inline_ascii(b"self");
- pub const SELF_TYPE: super::Name = super::Name::new_inline_ascii(b"Self");
+ pub const SELF_PARAM: super::Name = super::Name::new_inline("self");
+ pub const SELF_TYPE: super::Name = super::Name::new_inline("Self");
#[macro_export]
macro_rules! name {
fn resolve_lang_item(&self, name: &str) -> Option<LangItemTarget> {
let krate = self.resolver.krate()?;
- let name = SmolStr::new_inline_from_ascii(name.len(), name.as_bytes());
+ let name = SmolStr::new_inline(name);
self.db.lang_item(krate, name)
}
let (text, id) = match leaf {
tt::Leaf::Ident(ident) => (ident.text.clone(), ident.id),
tt::Leaf::Punct(punct) => {
- (SmolStr::new_inline_from_ascii(1, &[punct.char as u8]), punct.id)
+ assert!(punct.char.is_ascii());
+ let char = &(punct.char as u8);
+ let text = std::str::from_utf8(std::slice::from_ref(char)).unwrap();
+ (SmolStr::new_inline(text), punct.id)
}
tt::Leaf::Literal(lit) => (lit.text.clone(), lit.id),
};