Skip to content
This repository was archived by the owner on Mar 1, 2019. It is now read-only.

Commit 595fc0b

Browse files
committed
Add a test for aliased renaming
cc rust-lang/rls#818
1 parent 08f5aad commit 595fc0b

File tree

6 files changed

+49
-0
lines changed

6 files changed

+49
-0
lines changed

src/test/mod.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,3 +380,22 @@ fn test_extern_fn() {
380380
let def = host.goto_def(&spans[1]);
381381
assert_eq!(def.unwrap(), spans[0]);
382382
}
383+
384+
#[test]
385+
fn test_all_ref_unique() {
386+
let host = AnalysisHost::new_with_loader(TestAnalysisLoader::new(
387+
Path::new("test_data/rename/save-analysis").to_owned(),
388+
));
389+
host.reload(Path::new("test_data/rename"), Path::new("test_data/rename"))
390+
.unwrap();
391+
392+
let spans = host.search("bar").unwrap();
393+
assert_eq!(spans.len(), 4);
394+
let refs = host.find_all_refs(&spans[3], true, true);
395+
assert_eq!(refs.unwrap().len(), 0);
396+
397+
let spans = host.search("qux").unwrap();
398+
assert_eq!(spans.len(), 3);
399+
let refs = host.find_all_refs(&spans[2], true, true);
400+
assert_eq!(refs.unwrap().len(), 3);
401+
}

test_data/make_data.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,6 @@ build types types/save-analysis
3333

3434
# Expressions
3535
build exprs exprs/save-analysis
36+
37+
# all_ref_unique
38+
build rename rename/save-analysis

test_data/rename/Cargo.lock

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test_data/rename/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[package]
2+
name = "rename"
3+
version = "0.1.0"
4+
authors = ["Nick Cameron <[email protected]>"]
5+
6+
[dependencies]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"config":{"output_file":null,"full_docs":false,"pub_only":false,"reachable_only":false,"distro_crate":false,"signatures":false,"borrow_data":false},"prelude":{"crate_id":{"name":"rename","disambiguator":[15344473257692267285,11526290613969210121]},"crate_root":"src","external_crates":[{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":1,"id":{"name":"std","disambiguator":[14432511533341295636,4311052241033655891]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":2,"id":{"name":"core","disambiguator":[17072911384636793184,16051064601402656485]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":3,"id":{"name":"compiler_builtins","disambiguator":[13525339190555708102,1830656834648964929]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":4,"id":{"name":"alloc","disambiguator":[17198736606968675642,14275352771659048254]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":5,"id":{"name":"alloc_system","disambiguator":[2091716200026081704,15823106656297828688]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":6,"id":{"name":"libc","disambiguator":[13088542877910744519,14493954966318922730]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":7,"id":{"name":"unwind","disambiguator":[15985174238589507576,3749380134813561016]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":8,"id":{"name":"alloc_jemalloc","disambiguator":[3024287792016865132,17683646904702389714]}},{"file_name":"/Users/nick/version-controlled/rls-analysis/test_data/rename/src/main.rs","num":9,"id":{"name":"panic_unwind","disambiguator":[17521573399390905579,17496626875244828075]}}],"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":0,"byte_end":169,"line_start":1,"line_end":16,"column_start":1,"column_end":13}},"imports":[{"kind":"Use","ref_id":{"krate":0,"index":10},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":70,"byte_end":73,"line_start":7,"line_end":7,"column_start":12,"column_end":15},"alias_span":null,"name":"qux","value":"","parent":{"krate":0,"index":12}},{"kind":"Use","ref_id":{"krate":0,"index":8},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":86,"byte_end":89,"line_start":8,"line_end":8,"column_start":12,"column_end":15},"alias_span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":93,"byte_end":96,"line_start":8,"line_end":8,"column_start":19,"column_end":22},"name":"baz","value":"","parent":{"krate":0,"index":12}}],"defs":[{"kind":"Mod","id":{"krate":0,"index":0},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":0,"byte_end":169,"line_start":1,"line_end":16,"column_start":1,"column_end":13},"name":"","qualname":"::","value":"src/main.rs","parent":null,"children":[{"krate":0,"index":2},{"krate":0,"index":4},{"krate":0,"index":6},{"krate":0,"index":12},{"krate":0,"index":20}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Mod","id":{"krate":0,"index":6},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":4,"byte_end":5,"line_start":1,"line_end":1,"column_start":5,"column_end":6},"name":"a","qualname":"::a","value":"src/main.rs","parent":null,"children":[{"krate":0,"index":8},{"krate":0,"index":10}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":8},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":19,"byte_end":22,"line_start":2,"line_end":2,"column_start":12,"column_end":15},"name":"bar","qualname":"::a::bar","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":10},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":39,"byte_end":42,"line_start":3,"line_end":3,"column_start":12,"column_end":15},"name":"qux","qualname":"::a::qux","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Mod","id":{"krate":0,"index":12},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":55,"byte_end":56,"line_start":6,"line_end":6,"column_start":5,"column_end":6},"name":"b","qualname":"::b","value":"src/main.rs","parent":null,"children":[{"krate":0,"index":14},{"krate":0,"index":16},{"krate":0,"index":18}],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":18},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":110,"byte_end":113,"line_start":10,"line_end":10,"column_start":12,"column_end":15},"name":"foo","qualname":"::b::foo","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]},{"kind":"Function","id":{"krate":0,"index":20},"span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":160,"byte_end":164,"line_start":16,"line_end":16,"column_start":4,"column_end":8},"name":"main","qualname":"::main","value":"fn () -> ()","parent":null,"children":[],"decl_id":null,"docs":"","sig":null,"attributes":[]}],"impls":[],"refs":[{"kind":"Mod","span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"ref_id":{"krate":4294967295,"index":4294967295}},{"kind":"Mod","span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"ref_id":{"krate":4294967295,"index":4294967295}},{"kind":"Mod","span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1},"ref_id":{"krate":4294967295,"index":4294967295}},{"kind":"Mod","span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":67,"byte_end":68,"line_start":7,"line_end":7,"column_start":9,"column_end":10},"ref_id":{"krate":4294967295,"index":4294967295}},{"kind":"Mod","span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":83,"byte_end":84,"line_start":8,"line_end":8,"column_start":9,"column_end":10},"ref_id":{"krate":4294967295,"index":4294967295}},{"kind":"Function","span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":126,"byte_end":129,"line_start":11,"line_end":11,"column_start":9,"column_end":12},"ref_id":{"krate":0,"index":10}},{"kind":"Function","span":{"file_name":[115,114,99,47,109,97,105,110,46,114,115],"byte_start":141,"byte_end":144,"line_start":12,"line_end":12,"column_start":9,"column_end":12},"ref_id":{"krate":0,"index":8}}],"macro_refs":[],"relations":[]}

test_data/rename/src/main.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
mod a {
2+
pub fn bar() {}
3+
pub fn qux() {}
4+
}
5+
6+
mod b {
7+
use a::qux;
8+
use a::bar as baz;
9+
10+
pub fn foo() {
11+
qux();
12+
baz();
13+
}
14+
}
15+
16+
fn main() {}

0 commit comments

Comments
 (0)