File tree Expand file tree Collapse file tree 4 files changed +31
-18
lines changed Expand file tree Collapse file tree 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> {
435435 _ => Class :: RefKeyWord ,
436436 } ,
437437
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.
439459 TokenKind :: Minus
440460 | TokenKind :: Plus
441461 | TokenKind :: Or
442462 | TokenKind :: Slash
443463 | TokenKind :: Caret
444464 | TokenKind :: Percent
445465 | TokenKind :: Bang
446- | TokenKind :: Eq
447466 | TokenKind :: Lt
448467 | TokenKind :: Gt => Class :: Op ,
449468
Original file line number Diff line number Diff line change 1313< span class ="kw "> use</ span > < span class ="ident "> std::path</ span > ::{< span class ="ident "> Path</ span > , < span class ="ident "> PathBuf</ span > };
1414
1515< 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 > () -> () {
1717 < 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 > ;
1818 < 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 > ;
1919 < span class ="kw "> let</ span > < span class ="kw "> _</ span > < span class ="op "> =</ span > < span class ="kw-2 "> &</ span > < span class ="ident "> foo</ span > ;
2727 < 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 > ();
2828
2929 < 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 > = > {}
3131 }
3232}
3333
3434< 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 > ) = > {};
3636}
3737</ code > </ pre >
Original file line number Diff line number Diff line change 33use std:: path:: { Path , PathBuf } ;
44
55#[ cfg( target_os = "linux" ) ]
6- fn main ( ) {
6+ fn main ( ) -> ( ) {
77 let foo = true && false || true ;
88 let _: * const ( ) = 0 ;
99 let _ = & foo;
Original file line number Diff line number Diff line change 66// @has 'foo/macro.todo.html'
77// @has - '//span[@class="macro"]' 'macro_rules!'
88// @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
1111
12- // @has - '{ ()'
13- // @has - '//span[@class="op"]' '='
14- // @has - '//span[@class="op"]' '>'
15- // @has - '{ ... };'
16-
17- // @has - '($('
12+ // @has - '{ () => { ... }; ($('
1813// @has - '//span[@class="macro-nonterminal"]' '$'
1914// @has - '//span[@class="macro-nonterminal"]' 'arg'
2015// @has - ':'
2116// @has - '//span[@class="ident"]' 'tt'
2217// @has - '),'
2318// @has - '//span[@class="op"]' '+'
24- // @has - ')'
19+ // @has - ') => { ... }; } '
2520pub use std:: todo;
2621
2722mod mod1 {
2823 // @has 'foo/macro.macro1.html'
2924 // @has - 'macro_rules!'
3025 // @has - 'macro1'
31- // @has - '{ ()'
32- // @has - '($('
26+ // @has - '{ () => { ... }; ($('
3327 // @has - '//span[@class="macro-nonterminal"]' '$'
3428 // @has - '//span[@class="macro-nonterminal"]' 'arg'
3529 // @has - ':'
3630 // @has - 'expr'
3731 // @has - '),'
3832 // @has - '+'
39- // @has - ')'
33+ // @has - ') => { ... }; } '
4034 #[ macro_export]
4135 macro_rules! macro1 {
4236 ( ) => { } ;
You can’t perform that action at this time.
0 commit comments