Fix unexpected whitespace in condition error
This commit is contained in:
		
							parent
							
								
									2bac397096
								
							
						
					
					
						commit
						f00302c8af
					
				| 
						 | 
				
			
			@ -200,6 +200,28 @@ pub enum Delimiter {
 | 
			
		|||
    Bracket,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Delimiter {
 | 
			
		||||
    /// Returns the opening delimiter.
 | 
			
		||||
    #[must_use]
 | 
			
		||||
    pub fn opening_char(&self) -> char {
 | 
			
		||||
        match self {
 | 
			
		||||
            Self::Parenthesis => '(',
 | 
			
		||||
            Self::Brace => '{',
 | 
			
		||||
            Self::Bracket => '[',
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// Returns the closing delimiter.
 | 
			
		||||
    #[must_use]
 | 
			
		||||
    pub fn closing_char(&self) -> char {
 | 
			
		||||
        match self {
 | 
			
		||||
            Self::Parenthesis => ')',
 | 
			
		||||
            Self::Brace => '}',
 | 
			
		||||
            Self::Bracket => ']',
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Represents a list of tokens enclosed by a pair of delimiters.
 | 
			
		||||
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
 | 
			
		||||
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -54,11 +54,7 @@ impl<'a> Parser<'a> {
 | 
			
		|||
        // move after the whole delimited list
 | 
			
		||||
        self.current_frame.forward();
 | 
			
		||||
 | 
			
		||||
        let expected = match delimiter {
 | 
			
		||||
            Delimiter::Parenthesis => '(',
 | 
			
		||||
            Delimiter::Brace => '{',
 | 
			
		||||
            Delimiter::Bracket => '[',
 | 
			
		||||
        };
 | 
			
		||||
        let expected = delimiter.opening_char();
 | 
			
		||||
 | 
			
		||||
        let delimited_stream = if let Some(token_tree) = raw_token_tree {
 | 
			
		||||
            match token_tree {
 | 
			
		||||
| 
						 | 
				
			
			@ -107,17 +103,13 @@ impl<'a> Parser<'a> {
 | 
			
		|||
 | 
			
		||||
        // the current frame must be at the end
 | 
			
		||||
        if !self.current_frame.is_exhausted() {
 | 
			
		||||
            let expected = match self
 | 
			
		||||
            let expected = self
 | 
			
		||||
                .current_frame
 | 
			
		||||
                .token_provider
 | 
			
		||||
                .as_delimited()
 | 
			
		||||
                .unwrap()
 | 
			
		||||
                .delimiter
 | 
			
		||||
            {
 | 
			
		||||
                Delimiter::Parenthesis => ')',
 | 
			
		||||
                Delimiter::Brace => '}',
 | 
			
		||||
                Delimiter::Bracket => ']',
 | 
			
		||||
            };
 | 
			
		||||
                .closing_char();
 | 
			
		||||
 | 
			
		||||
            handler.receive(Error::UnexpectedSyntax(UnexpectedSyntax {
 | 
			
		||||
                expected: SyntaxKind::Punctuation(expected),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -358,7 +358,11 @@ impl<'a> Parser<'a> {
 | 
			
		|||
    ) -> Option<ParenthesizedCondition> {
 | 
			
		||||
        let token_tree = self.step_into(
 | 
			
		||||
            Delimiter::Parenthesis,
 | 
			
		||||
            |parser| parser.parse_condition(handler),
 | 
			
		||||
            |parser| {
 | 
			
		||||
                let cond = parser.parse_condition(handler)?;
 | 
			
		||||
                parser.stop_at_significant();
 | 
			
		||||
                Some(cond)
 | 
			
		||||
            },
 | 
			
		||||
            handler,
 | 
			
		||||
        )?;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue