@@ -4,7 +4,7 @@ mod block;
44
55use crate :: {
66 algo, ast, match_ast, AstNode , SyntaxError ,
7- SyntaxKind :: { BYTE , CHAR , CONST , FN , INT_NUMBER , TYPE_ALIAS } ,
7+ SyntaxKind :: { CONST , FN , INT_NUMBER , TYPE_ALIAS } ,
88 SyntaxNode , SyntaxToken , TextSize , T ,
99} ;
1010use rowan:: Direction ;
@@ -121,41 +121,42 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) {
121121 acc. push ( SyntaxError :: new_at_offset ( rustc_unescape_error_to_string ( err) , off) ) ;
122122 } ;
123123
124- if let Some ( s) = literal. as_string ( ) {
125- if !s. is_raw ( ) {
126- if let Some ( without_quotes) = unquote ( text, 1 , '"' ) {
127- unescape_literal ( without_quotes, Mode :: Str , & mut |range, char| {
128- if let Err ( err) = char {
129- push_err ( 1 , ( range. start , err) ) ;
130- }
131- } )
132- }
133- }
134- }
135- if let Some ( s) = literal. as_byte_string ( ) {
136- if !s. is_raw ( ) {
137- if let Some ( without_quotes) = unquote ( text, 2 , '"' ) {
138- unescape_byte_literal ( without_quotes, Mode :: ByteStr , & mut |range, char| {
139- if let Err ( err) = char {
140- push_err ( 2 , ( range. start , err) ) ;
141- }
142- } )
124+ match literal. kind ( ) {
125+ ast:: LiteralKind :: String ( s) => {
126+ if !s. is_raw ( ) {
127+ if let Some ( without_quotes) = unquote ( text, 1 , '"' ) {
128+ unescape_literal ( without_quotes, Mode :: Str , & mut |range, char| {
129+ if let Err ( err) = char {
130+ push_err ( 1 , ( range. start , err) ) ;
131+ }
132+ } )
133+ }
143134 }
144135 }
145- }
146-
147- match token. kind ( ) {
148- BYTE => {
149- if let Some ( Err ( e) ) = unquote ( text, 2 , '\'' ) . map ( unescape_byte) {
150- push_err ( 2 , e) ;
136+ ast:: LiteralKind :: ByteString ( s) => {
137+ if !s. is_raw ( ) {
138+ if let Some ( without_quotes) = unquote ( text, 2 , '"' ) {
139+ unescape_byte_literal ( without_quotes, Mode :: ByteStr , & mut |range, char| {
140+ if let Err ( err) = char {
141+ push_err ( 2 , ( range. start , err) ) ;
142+ }
143+ } )
144+ }
151145 }
152146 }
153- CHAR => {
147+ ast :: LiteralKind :: Char => {
154148 if let Some ( Err ( e) ) = unquote ( text, 1 , '\'' ) . map ( unescape_char) {
155149 push_err ( 1 , e) ;
156150 }
157151 }
158- _ => ( ) ,
152+ ast:: LiteralKind :: Byte => {
153+ if let Some ( Err ( e) ) = unquote ( text, 2 , '\'' ) . map ( unescape_byte) {
154+ push_err ( 2 , e) ;
155+ }
156+ }
157+ ast:: LiteralKind :: IntNumber ( _)
158+ | ast:: LiteralKind :: FloatNumber ( _)
159+ | ast:: LiteralKind :: Bool ( _) => { }
159160 }
160161}
161162
0 commit comments