@@ -13,7 +13,7 @@ fn adapt_pattern(pattern: &mut ast::Pattern<String>, crlf: bool) {
13
13
let mut elements = vec ! [ ] ;
14
14
for element in & pattern. elements {
15
15
match element {
16
- ast:: PatternElement :: TextElement { value } => {
16
+ ast:: PatternElement :: TextElement { value, .. } => {
17
17
let mut start = 0 ;
18
18
let len = value. len ( ) ;
19
19
for ( i, b) in value. as_bytes ( ) . iter ( ) . enumerate ( ) {
@@ -22,29 +22,33 @@ fn adapt_pattern(pattern: &mut ast::Pattern<String>, crlf: bool) {
22
22
if i > start {
23
23
let chunk = & value. as_bytes ( ) [ start..=i - 1 ] ;
24
24
let value = String :: from_utf8_lossy ( chunk) . to_string ( ) ;
25
- elements. push ( ast:: PatternElement :: TextElement { value } ) ;
25
+ elements. push ( ast:: PatternElement :: TextElement { value, # [ cfg ( feature = "spans" ) ] span : ast :: Span ( start..i ) } ) ;
26
26
}
27
+
27
28
elements. push ( ast:: PatternElement :: TextElement {
28
29
value : "\n " . to_string ( ) ,
30
+ #[ cfg( feature = "spans" ) ]
31
+ span : ast:: Span ( i..i+1 )
29
32
} ) ;
30
33
} else {
31
34
let chunk = & value. as_bytes ( ) [ start..=i] ;
32
35
let value = String :: from_utf8_lossy ( chunk) . to_string ( ) ;
33
- elements. push ( ast:: PatternElement :: TextElement { value } ) ;
36
+ elements. push ( ast:: PatternElement :: TextElement { value, # [ cfg ( feature = "spans" ) ] span : ast :: Span ( start..i+ 1 ) } ) ;
34
37
}
35
38
start = i + 1 ;
36
39
}
37
40
}
41
+
38
42
if start < len {
39
43
let chunk = & value. as_bytes ( ) [ start..len] ;
40
44
let value = String :: from_utf8_lossy ( chunk) . to_string ( ) ;
41
- elements. push ( ast:: PatternElement :: TextElement { value } ) ;
45
+ elements. push ( ast:: PatternElement :: TextElement { value, # [ cfg ( feature = "spans" ) ] span : ast :: Span ( start..len ) } ) ;
42
46
}
43
47
}
44
- ast:: PatternElement :: Placeable { expression } => {
48
+ ast:: PatternElement :: Placeable { expression, # [ cfg ( feature = "spans" ) ] span } => {
45
49
let mut expression = expression. clone ( ) ;
46
50
adapt_expression ( & mut expression, crlf) ;
47
- elements. push ( ast:: PatternElement :: Placeable { expression } ) ;
51
+ elements. push ( ast:: PatternElement :: Placeable { expression, # [ cfg ( feature = "spans" ) ] span : span . clone ( ) } ) ;
48
52
}
49
53
}
50
54
}
@@ -58,7 +62,7 @@ fn adapt_expression(expression: &mut ast::Expression<String>, crlf: bool) {
58
62
adapt_pattern ( & mut variant. value , crlf) ;
59
63
}
60
64
}
61
- ast:: Expression :: Inline ( _ ) => { }
65
+ ast:: Expression :: Inline ( .. ) => { }
62
66
}
63
67
}
64
68
0 commit comments