File tree Expand file tree Collapse file tree 1 file changed +12
-7
lines changed
Expand file tree Collapse file tree 1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -51,20 +51,25 @@ fn parse_name_or_range(stream: &mut TokenStream) -> ParseResult<NameOrRange> {
5151 pos,
5252 } = expr
5353 {
54- if let Name :: Attribute ( ref attribute_name) = * name. as_ref ( ) {
54+ if let Name :: Attribute ( attribute_name) = * name {
5555 if matches ! (
5656 attribute_name. attr. item,
5757 AttributeDesignator :: Range | AttributeDesignator :: ReverseRange
5858 ) {
59- // @TODO avoid clone
60- let range = ast:: Range :: Attribute ( attribute_name. clone ( ) ) ;
61- return Ok ( NameOrRange :: Range ( WithPos :: from ( range, pos) ) ) ;
59+ let range = ast:: Range :: Attribute ( attribute_name) ;
60+ Ok ( NameOrRange :: Range ( WithPos :: from ( range, pos) ) )
61+ } else {
62+ Ok ( NameOrRange :: Name ( WithPos :: from (
63+ Name :: Attribute ( attribute_name) ,
64+ pos,
65+ ) ) )
6266 }
67+ } else {
68+ Ok ( NameOrRange :: Name ( WithPos :: from ( * name, pos) ) )
6369 }
64- return Ok ( NameOrRange :: Name ( WithPos :: from ( * name, pos) ) ) ;
70+ } else {
71+ Err ( Diagnostic :: error ( & expr, "Expected name or range" ) )
6572 }
66-
67- Err ( Diagnostic :: error ( & expr, "Expected name or range" ) )
6873}
6974
7075/// {selected_name}'range
You can’t perform that action at this time.
0 commit comments