It makes the code a little nicer. As part of this, the interner's `Default` impl is removed and `prefill` is used in a test instead.
25 lines
710 B
Rust
25 lines
710 B
Rust
use super::*;
|
|
|
|
use crate::create_default_session_globals_then;
|
|
|
|
#[test]
|
|
fn interner_tests() {
|
|
let i = Interner::prefill(&[]);
|
|
// first one is zero:
|
|
assert_eq!(i.intern("dog"), Symbol::new(0));
|
|
// re-use gets the same entry:
|
|
assert_eq!(i.intern("dog"), Symbol::new(0));
|
|
// different string gets a different #:
|
|
assert_eq!(i.intern("cat"), Symbol::new(1));
|
|
assert_eq!(i.intern("cat"), Symbol::new(1));
|
|
// dog is still at zero
|
|
assert_eq!(i.intern("dog"), Symbol::new(0));
|
|
}
|
|
|
|
#[test]
|
|
fn without_first_quote_test() {
|
|
create_default_session_globals_then(|| {
|
|
let i = Ident::from_str("'break");
|
|
assert_eq!(i.without_first_quote().name, kw::Break);
|
|
});
|
|
}
|