File tree 4 files changed +31
-18
lines changed
4 files changed +31
-18
lines changed Original file line number Diff line number Diff line change @@ -435,15 +435,34 @@ impl<'a> Classifier<'a> {
435
435
_ => Class :: RefKeyWord ,
436
436
} ,
437
437
438
- // Operators.
438
+ // These can either be operators, or arrows.
439
+ TokenKind :: Eq => match lookahead {
440
+ Some ( TokenKind :: Eq ) => {
441
+ self . next ( ) ;
442
+ sink ( Highlight :: Token { text : "==" , class : Some ( Class :: Op ) } ) ;
443
+ return ;
444
+ }
445
+ Some ( TokenKind :: Gt ) => {
446
+ self . next ( ) ;
447
+ sink ( Highlight :: Token { text : "=>" , class : None } ) ;
448
+ return ;
449
+ }
450
+ _ => Class :: Op ,
451
+ } ,
452
+ TokenKind :: Minus if lookahead == Some ( TokenKind :: Gt ) => {
453
+ self . next ( ) ;
454
+ sink ( Highlight :: Token { text : "->" , class : None } ) ;
455
+ return ;
456
+ }
457
+
458
+ // Other operators.
439
459
TokenKind :: Minus
440
460
| TokenKind :: Plus
441
461
| TokenKind :: Or
442
462
| TokenKind :: Slash
443
463
| TokenKind :: Caret
444
464
| TokenKind :: Percent
445
465
| TokenKind :: Bang
446
- | TokenKind :: Eq
447
466
| TokenKind :: Lt
448
467
| TokenKind :: Gt => Class :: Op ,
449
468
Original file line number Diff line number Diff line change 13
13
< span class ="kw "> use</ span > < span class ="ident "> std::path</ span > ::{< span class ="ident "> Path</ span > , < span class ="ident "> PathBuf</ span > };
14
14
15
15
< span class ="attribute "> #[< span class ="ident "> cfg</ span > (< span class ="ident "> target_os</ span > < span class ="op "> =</ span > < span class ="string "> "linux"</ span > )]</ span >
16
- < span class ="kw "> fn</ span > < span class ="ident "> main</ span > () {
16
+ < span class ="kw "> fn</ span > < span class ="ident "> main</ span > () -> () {
17
17
< span class ="kw "> let</ span > < span class ="ident "> foo</ span > < span class ="op "> =</ span > < span class ="bool-val "> true</ span > < span class ="op "> &&</ span > < span class ="bool-val "> false</ span > < span class ="op "> |</ span > < span class ="op "> |</ span > < span class ="bool-val "> true</ span > ;
18
18
< span class ="kw "> let</ span > < span class ="kw "> _</ span > : < span class ="kw-2 "> *</ span > < span class ="kw "> const</ span > () < span class ="op "> =</ span > < span class ="number "> 0</ span > ;
19
19
< span class ="kw "> let</ span > < span class ="kw "> _</ span > < span class ="op "> =</ span > < span class ="kw-2 "> &</ span > < span class ="ident "> foo</ span > ;
27
27
< span class ="kw "> let</ span > < span class ="kw-2 "> mut</ span > < span class ="ident "> s</ span > < span class ="op "> =</ span > < span class ="ident "> String::new</ span > ();
28
28
29
29
< span class ="kw "> match</ span > < span class ="kw-2 "> &</ span > < span class ="ident "> s</ span > {
30
- < span class ="kw-2 "> ref</ span > < span class ="kw-2 "> mut</ span > < span class ="ident "> x</ span > < span class =" op " > = </ span > < span class =" op " > ></ span > {}
30
+ < span class ="kw-2 "> ref</ span > < span class ="kw-2 "> mut</ span > < span class ="ident "> x</ span > = > {}
31
31
}
32
32
}
33
33
34
34
< span class ="macro "> macro_rules!</ span > < span class ="ident "> bar</ span > {
35
- (< span class ="macro-nonterminal "> $</ span > < span class ="macro-nonterminal "> foo</ span > :< span class ="ident "> tt</ span > ) < span class =" op " > = </ span > < span class =" op " > ></ span > {};
35
+ (< span class ="macro-nonterminal "> $</ span > < span class ="macro-nonterminal "> foo</ span > :< span class ="ident "> tt</ span > ) = > {};
36
36
}
37
37
</ code > </ pre >
Original file line number Diff line number Diff line change 3
3
use std:: path:: { Path , PathBuf } ;
4
4
5
5
#[ cfg( target_os = "linux" ) ]
6
- fn main ( ) {
6
+ fn main ( ) -> ( ) {
7
7
let foo = true && false || true ;
8
8
let _: * const ( ) = 0 ;
9
9
let _ = & foo;
Original file line number Diff line number Diff line change 6
6
// @has 'foo/macro.todo.html'
7
7
// @has - '//span[@class="macro"]' 'macro_rules!'
8
8
// @has - '//span[@class="ident"]' 'todo'
9
- // Note: count = 2 * ('=' + '>') + '+' = 2 * (1 + 1) + 1 = 5
10
- // @count - '//pre[@class="rust macro"]//span[@class="op"]' 5
9
+ // Note: the only op is the `+`
10
+ // @count - '//pre[@class="rust macro"]//span[@class="op"]' 1
11
11
12
- // @has - '{ ()'
13
- // @has - '//span[@class="op"]' '='
14
- // @has - '//span[@class="op"]' '>'
15
- // @has - '{ ... };'
16
-
17
- // @has - '($('
12
+ // @has - '{ () => { ... }; ($('
18
13
// @has - '//span[@class="macro-nonterminal"]' '$'
19
14
// @has - '//span[@class="macro-nonterminal"]' 'arg'
20
15
// @has - ':'
21
16
// @has - '//span[@class="ident"]' 'tt'
22
17
// @has - '),'
23
18
// @has - '//span[@class="op"]' '+'
24
- // @has - ')'
19
+ // @has - ') => { ... }; } '
25
20
pub use std:: todo;
26
21
27
22
mod mod1 {
28
23
// @has 'foo/macro.macro1.html'
29
24
// @has - 'macro_rules!'
30
25
// @has - 'macro1'
31
- // @has - '{ ()'
32
- // @has - '($('
26
+ // @has - '{ () => { ... }; ($('
33
27
// @has - '//span[@class="macro-nonterminal"]' '$'
34
28
// @has - '//span[@class="macro-nonterminal"]' 'arg'
35
29
// @has - ':'
36
30
// @has - 'expr'
37
31
// @has - '),'
38
32
// @has - '+'
39
- // @has - ')'
33
+ // @has - ') => { ... }; } '
40
34
#[ macro_export]
41
35
macro_rules! macro1 {
42
36
( ) => { } ;
You can’t perform that action at this time.
0 commit comments