aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/path/lower
diff options
context:
space:
mode:
authorJosh Mcguigan <[email protected]>2020-03-01 03:48:55 +0000
committerJosh Mcguigan <[email protected]>2020-03-01 03:48:55 +0000
commit69faf81e0db5abe54b97708c5b8089934fca32f6 (patch)
treeeb7912438471345d4c92108c04ae76d3c5f2728d /crates/ra_hir_def/src/path/lower
parente91320632a9dfee937c3c2ba3ffafd3f5ffb22dc (diff)
fix #2377 super::super::*
Diffstat (limited to 'crates/ra_hir_def/src/path/lower')
-rw-r--r--crates/ra_hir_def/src/path/lower/lower_use.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/crates/ra_hir_def/src/path/lower/lower_use.rs b/crates/ra_hir_def/src/path/lower/lower_use.rs
index b6d1125e2..278d5196e 100644
--- a/crates/ra_hir_def/src/path/lower/lower_use.rs
+++ b/crates/ra_hir_def/src/path/lower/lower_use.rs
@@ -103,10 +103,13 @@ fn convert_path(prefix: Option<ModPath>, path: ast::Path, hygiene: &Hygiene) ->
103 ModPath::from_segments(PathKind::Super(0), iter::empty()) 103 ModPath::from_segments(PathKind::Super(0), iter::empty())
104 } 104 }
105 ast::PathSegmentKind::SuperKw => { 105 ast::PathSegmentKind::SuperKw => {
106 if prefix.is_some() { 106 let nested_super_count = match prefix.map(|p| p.kind) {
107 return None; 107 Some(PathKind::Super(n)) => n,
108 } 108 Some(_) => return None,
109 ModPath::from_segments(PathKind::Super(1), iter::empty()) 109 None => 0,
110 };
111
112 ModPath::from_segments(PathKind::Super(nested_super_count + 1), iter::empty())
110 } 113 }
111 ast::PathSegmentKind::Type { .. } => { 114 ast::PathSegmentKind::Type { .. } => {
112 // not allowed in imports 115 // not allowed in imports