mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-11-03 13:13:18 +00:00 
			
		
		
		
	Rename the unescaping functions.
`unescape_literal` becomes `unescape_unicode`, and `unescape_c_string` becomes `unescape_mixed`. Because rfc3349 will mean that C string literals will no longer be the only mixed utf8 literals.
This commit is contained in:
		
							parent
							
								
									56514076ac
								
							
						
					
					
						commit
						858f4aca6c
					
				@ -379,14 +379,14 @@ fn unescape_string_error_message(text: &str, mode: Mode) -> &'static str {
 | 
				
			|||||||
    let mut error_message = "";
 | 
					    let mut error_message = "";
 | 
				
			||||||
    match mode {
 | 
					    match mode {
 | 
				
			||||||
        Mode::CStr => {
 | 
					        Mode::CStr => {
 | 
				
			||||||
            rustc_lexer::unescape::unescape_c_string(text, mode, &mut |_, res| {
 | 
					            rustc_lexer::unescape::unescape_mixed(text, mode, &mut |_, res| {
 | 
				
			||||||
                if let Err(e) = res {
 | 
					                if let Err(e) = res {
 | 
				
			||||||
                    error_message = error_to_diagnostic_message(e, mode);
 | 
					                    error_message = error_to_diagnostic_message(e, mode);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        Mode::ByteStr | Mode::Str => {
 | 
					        Mode::ByteStr | Mode::Str => {
 | 
				
			||||||
            rustc_lexer::unescape::unescape_literal(text, mode, &mut |_, res| {
 | 
					            rustc_lexer::unescape::unescape_unicode(text, mode, &mut |_, res| {
 | 
				
			||||||
                if let Err(e) = res {
 | 
					                if let Err(e) = res {
 | 
				
			||||||
                    error_message = error_to_diagnostic_message(e, mode);
 | 
					                    error_message = error_to_diagnostic_message(e, mode);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ use std::{
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use rustc_lexer::unescape::{
 | 
					use rustc_lexer::unescape::{
 | 
				
			||||||
    unescape_byte, unescape_c_string, unescape_char, unescape_literal, MixedUnit, Mode,
 | 
					    unescape_byte, unescape_char, unescape_mixed, unescape_unicode, MixedUnit, Mode,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::{
 | 
					use crate::{
 | 
				
			||||||
@ -193,7 +193,7 @@ pub trait IsString: AstToken {
 | 
				
			|||||||
        let text = &self.text()[text_range_no_quotes - start];
 | 
					        let text = &self.text()[text_range_no_quotes - start];
 | 
				
			||||||
        let offset = text_range_no_quotes.start() - start;
 | 
					        let offset = text_range_no_quotes.start() - start;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        unescape_literal(text, Self::MODE, &mut |range, unescaped_char| {
 | 
					        unescape_unicode(text, Self::MODE, &mut |range, unescaped_char| {
 | 
				
			||||||
            let text_range =
 | 
					            let text_range =
 | 
				
			||||||
                TextRange::new(range.start.try_into().unwrap(), range.end.try_into().unwrap());
 | 
					                TextRange::new(range.start.try_into().unwrap(), range.end.try_into().unwrap());
 | 
				
			||||||
            cb(text_range + offset, unescaped_char);
 | 
					            cb(text_range + offset, unescaped_char);
 | 
				
			||||||
@ -226,7 +226,7 @@ impl ast::String {
 | 
				
			|||||||
        let mut buf = String::new();
 | 
					        let mut buf = String::new();
 | 
				
			||||||
        let mut prev_end = 0;
 | 
					        let mut prev_end = 0;
 | 
				
			||||||
        let mut has_error = false;
 | 
					        let mut has_error = false;
 | 
				
			||||||
        unescape_literal(text, Self::MODE, &mut |char_range, unescaped_char| match (
 | 
					        unescape_unicode(text, Self::MODE, &mut |char_range, unescaped_char| match (
 | 
				
			||||||
            unescaped_char,
 | 
					            unescaped_char,
 | 
				
			||||||
            buf.capacity() == 0,
 | 
					            buf.capacity() == 0,
 | 
				
			||||||
        ) {
 | 
					        ) {
 | 
				
			||||||
@ -270,7 +270,7 @@ impl ast::ByteString {
 | 
				
			|||||||
        let mut buf: Vec<u8> = Vec::new();
 | 
					        let mut buf: Vec<u8> = Vec::new();
 | 
				
			||||||
        let mut prev_end = 0;
 | 
					        let mut prev_end = 0;
 | 
				
			||||||
        let mut has_error = false;
 | 
					        let mut has_error = false;
 | 
				
			||||||
        unescape_literal(text, Self::MODE, &mut |char_range, unescaped_char| match (
 | 
					        unescape_unicode(text, Self::MODE, &mut |char_range, unescaped_char| match (
 | 
				
			||||||
            unescaped_char,
 | 
					            unescaped_char,
 | 
				
			||||||
            buf.capacity() == 0,
 | 
					            buf.capacity() == 0,
 | 
				
			||||||
        ) {
 | 
					        ) {
 | 
				
			||||||
@ -311,7 +311,7 @@ impl IsString for ast::CString {
 | 
				
			|||||||
        let text = &self.text()[text_range_no_quotes - start];
 | 
					        let text = &self.text()[text_range_no_quotes - start];
 | 
				
			||||||
        let offset = text_range_no_quotes.start() - start;
 | 
					        let offset = text_range_no_quotes.start() - start;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        unescape_c_string(text, Self::MODE, &mut |range, unescaped_char| {
 | 
					        unescape_mixed(text, Self::MODE, &mut |range, unescaped_char| {
 | 
				
			||||||
            let text_range =
 | 
					            let text_range =
 | 
				
			||||||
                TextRange::new(range.start.try_into().unwrap(), range.end.try_into().unwrap());
 | 
					                TextRange::new(range.start.try_into().unwrap(), range.end.try_into().unwrap());
 | 
				
			||||||
            // XXX: This method should only be used for highlighting ranges. The unescaped
 | 
					            // XXX: This method should only be used for highlighting ranges. The unescaped
 | 
				
			||||||
@ -340,7 +340,7 @@ impl ast::CString {
 | 
				
			|||||||
            MixedUnit::Char(c) => buf.extend(c.encode_utf8(&mut [0; 4]).as_bytes()),
 | 
					            MixedUnit::Char(c) => buf.extend(c.encode_utf8(&mut [0; 4]).as_bytes()),
 | 
				
			||||||
            MixedUnit::HighByte(b) => buf.push(b),
 | 
					            MixedUnit::HighByte(b) => buf.push(b),
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        unescape_c_string(text, Self::MODE, &mut |char_range, unescaped| match (
 | 
					        unescape_mixed(text, Self::MODE, &mut |char_range, unescaped| match (
 | 
				
			||||||
            unescaped,
 | 
					            unescaped,
 | 
				
			||||||
            buf.capacity() == 0,
 | 
					            buf.capacity() == 0,
 | 
				
			||||||
        ) {
 | 
					        ) {
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@
 | 
				
			|||||||
mod block;
 | 
					mod block;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use rowan::Direction;
 | 
					use rowan::Direction;
 | 
				
			||||||
use rustc_lexer::unescape::{self, unescape_c_string, unescape_literal, Mode};
 | 
					use rustc_lexer::unescape::{self, unescape_mixed, unescape_unicode, Mode};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::{
 | 
					use crate::{
 | 
				
			||||||
    algo,
 | 
					    algo,
 | 
				
			||||||
@ -140,7 +140,7 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) {
 | 
				
			|||||||
        ast::LiteralKind::String(s) => {
 | 
					        ast::LiteralKind::String(s) => {
 | 
				
			||||||
            if !s.is_raw() {
 | 
					            if !s.is_raw() {
 | 
				
			||||||
                if let Some(without_quotes) = unquote(text, 1, '"') {
 | 
					                if let Some(without_quotes) = unquote(text, 1, '"') {
 | 
				
			||||||
                    unescape_literal(without_quotes, Mode::Str, &mut |range, char| {
 | 
					                    unescape_unicode(without_quotes, Mode::Str, &mut |range, char| {
 | 
				
			||||||
                        if let Err(err) = char {
 | 
					                        if let Err(err) = char {
 | 
				
			||||||
                            push_err(1, range.start, err);
 | 
					                            push_err(1, range.start, err);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@ -151,7 +151,7 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) {
 | 
				
			|||||||
        ast::LiteralKind::ByteString(s) => {
 | 
					        ast::LiteralKind::ByteString(s) => {
 | 
				
			||||||
            if !s.is_raw() {
 | 
					            if !s.is_raw() {
 | 
				
			||||||
                if let Some(without_quotes) = unquote(text, 2, '"') {
 | 
					                if let Some(without_quotes) = unquote(text, 2, '"') {
 | 
				
			||||||
                    unescape_literal(without_quotes, Mode::ByteStr, &mut |range, char| {
 | 
					                    unescape_unicode(without_quotes, Mode::ByteStr, &mut |range, char| {
 | 
				
			||||||
                        if let Err(err) = char {
 | 
					                        if let Err(err) = char {
 | 
				
			||||||
                            push_err(1, range.start, err);
 | 
					                            push_err(1, range.start, err);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@ -162,7 +162,7 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) {
 | 
				
			|||||||
        ast::LiteralKind::CString(s) => {
 | 
					        ast::LiteralKind::CString(s) => {
 | 
				
			||||||
            if !s.is_raw() {
 | 
					            if !s.is_raw() {
 | 
				
			||||||
                if let Some(without_quotes) = unquote(text, 2, '"') {
 | 
					                if let Some(without_quotes) = unquote(text, 2, '"') {
 | 
				
			||||||
                    unescape_c_string(without_quotes, Mode::CStr, &mut |range, char| {
 | 
					                    unescape_mixed(without_quotes, Mode::CStr, &mut |range, char| {
 | 
				
			||||||
                        if let Err(err) = char {
 | 
					                        if let Err(err) = char {
 | 
				
			||||||
                            push_err(1, range.start, err);
 | 
					                            push_err(1, range.start, err);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@ -172,7 +172,7 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        ast::LiteralKind::Char(_) => {
 | 
					        ast::LiteralKind::Char(_) => {
 | 
				
			||||||
            if let Some(without_quotes) = unquote(text, 1, '\'') {
 | 
					            if let Some(without_quotes) = unquote(text, 1, '\'') {
 | 
				
			||||||
                unescape_literal(without_quotes, Mode::Char, &mut |range, char| {
 | 
					                unescape_unicode(without_quotes, Mode::Char, &mut |range, char| {
 | 
				
			||||||
                    if let Err(err) = char {
 | 
					                    if let Err(err) = char {
 | 
				
			||||||
                        push_err(1, range.start, err);
 | 
					                        push_err(1, range.start, err);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
@ -181,7 +181,7 @@ fn validate_literal(literal: ast::Literal, acc: &mut Vec<SyntaxError>) {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        ast::LiteralKind::Byte(_) => {
 | 
					        ast::LiteralKind::Byte(_) => {
 | 
				
			||||||
            if let Some(without_quotes) = unquote(text, 2, '\'') {
 | 
					            if let Some(without_quotes) = unquote(text, 2, '\'') {
 | 
				
			||||||
                unescape_literal(without_quotes, Mode::Byte, &mut |range, char| {
 | 
					                unescape_unicode(without_quotes, Mode::Byte, &mut |range, char| {
 | 
				
			||||||
                    if let Err(err) = char {
 | 
					                    if let Err(err) = char {
 | 
				
			||||||
                        push_err(2, range.start, err);
 | 
					                        push_err(2, range.start, err);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user