File tree Expand file tree Collapse file tree 3 files changed +28
-1
lines changed Expand file tree Collapse file tree 3 files changed +28
-1
lines changed Original file line number Diff line number Diff line change 3333 < span class ="keyword "> pub</ span > < span class ="field declaration "> y</ span > : < span class ="builtin_type "> i32</ span > ,
3434}
3535
36+ < span class ="keyword "> trait</ span > < span class ="trait declaration "> Bar</ span > {
37+ < span class ="keyword "> fn</ span > < span class ="function declaration "> bar</ span > (&< span class ="keyword "> self</ span > ) -> < span class ="builtin_type "> i32</ span > ;
38+ }
39+
40+ < span class ="keyword "> impl</ span > < span class ="trait "> Bar</ span > < span class ="keyword "> for</ span > < span class ="struct "> Foo</ span > {
41+ < span class ="keyword "> fn</ span > < span class ="function declaration "> bar</ span > (&< span class ="keyword "> self</ span > ) -> < span class ="builtin_type "> i32</ span > {
42+ < span class ="keyword "> self</ span > .< span class ="field "> x</ span >
43+ }
44+ }
45+
3646< span class ="keyword "> static</ span > < span class ="keyword "> mut</ span > < span class ="static declaration mutable "> STATIC_MUT</ span > : < span class ="builtin_type "> i32</ span > = < span class ="numeric_literal "> 0</ span > ;
3747
3848< span class ="keyword "> fn</ span > < span class ="function declaration "> foo</ span > << span class ="lifetime declaration "> 'a</ span > , < span class ="type_param declaration "> T</ span > >() -> < span class ="type_param "> T</ span > {
Original file line number Diff line number Diff line change @@ -403,13 +403,13 @@ fn highlight_element(
403403 T ! [ break ]
404404 | T ! [ continue ]
405405 | T ! [ else]
406- | T ! [ for ]
407406 | T ! [ if ]
408407 | T ! [ loop ]
409408 | T ! [ match ]
410409 | T ! [ return ]
411410 | T ! [ while ]
412411 | T ! [ in] => h | HighlightModifier :: ControlFlow ,
412+ T ! [ for ] if !is_child_of_impl ( element) => h | HighlightModifier :: ControlFlow ,
413413 T ! [ unsafe ] => h | HighlightModifier :: Unsafe ,
414414 _ => h,
415415 }
@@ -433,6 +433,13 @@ fn highlight_element(
433433 }
434434}
435435
436+ fn is_child_of_impl ( element : SyntaxElement ) -> bool {
437+ match element. parent ( ) {
438+ Some ( e) => e. kind ( ) == IMPL_DEF ,
439+ _ => false ,
440+ }
441+ }
442+
436443fn highlight_name ( db : & RootDatabase , def : Definition ) -> Highlight {
437444 match def {
438445 Definition :: Macro ( _) => HighlightTag :: Macro ,
Original file line number Diff line number Diff line change @@ -17,6 +17,16 @@ struct Foo {
1717 pub y: i32,
1818}
1919
20+ trait Bar {
21+ fn bar(&self) -> i32;
22+ }
23+
24+ impl Bar for Foo {
25+ fn bar(&self) -> i32 {
26+ self.x
27+ }
28+ }
29+
2030static mut STATIC_MUT: i32 = 0;
2131
2232fn foo<'a, T>() -> T {
You can’t perform that action at this time.
0 commit comments