diff options
author | Lukas Wirth <[email protected]> | 2021-01-15 17:57:32 +0000 |
---|---|---|
committer | Lukas Wirth <[email protected]> | 2021-01-15 18:21:23 +0000 |
commit | cb863390f23bc2eac6561d55def9bd3ba54605fc (patch) | |
tree | b19b39d9b6231e8857a4096cc803cf35e2ddbe81 /crates/ide_db/src/helpers | |
parent | 0c58aa9dc0e24f0fa6a6ee7eb0c35041dedddb0a (diff) |
Handle self/super/crate in PathSegment as NameRef
Diffstat (limited to 'crates/ide_db/src/helpers')
-rw-r--r-- | crates/ide_db/src/helpers/insert_use.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/ide_db/src/helpers/insert_use.rs b/crates/ide_db/src/helpers/insert_use.rs index d6b498be3..0c180e9bc 100644 --- a/crates/ide_db/src/helpers/insert_use.rs +++ b/crates/ide_db/src/helpers/insert_use.rs | |||
@@ -444,8 +444,14 @@ fn use_tree_path_cmp(a: &ast::Path, a_has_tl: bool, b: &ast::Path, b_has_tl: boo | |||
444 | } | 444 | } |
445 | 445 | ||
446 | fn path_segment_cmp(a: &ast::PathSegment, b: &ast::PathSegment) -> Ordering { | 446 | fn path_segment_cmp(a: &ast::PathSegment, b: &ast::PathSegment) -> Ordering { |
447 | let a = a.name_ref(); | 447 | let a = a.kind().and_then(|kind| match kind { |
448 | let b = b.name_ref(); | 448 | PathSegmentKind::Name(name_ref) => Some(name_ref), |
449 | _ => None, | ||
450 | }); | ||
451 | let b = b.kind().and_then(|kind| match kind { | ||
452 | PathSegmentKind::Name(name_ref) => Some(name_ref), | ||
453 | _ => None, | ||
454 | }); | ||
449 | a.as_ref().map(ast::NameRef::text).cmp(&b.as_ref().map(ast::NameRef::text)) | 455 | a.as_ref().map(ast::NameRef::text).cmp(&b.as_ref().map(ast::NameRef::text)) |
450 | } | 456 | } |
451 | 457 | ||