From b5f931d879c1bb4fa3fedb3bdb1497c45445af26 Mon Sep 17 00:00:00 2001 From: OmarTawfik <15987992+OmarTawfik@users.noreply.github.com> Date: Tue, 9 Jun 2026 10:14:05 +0000 Subject: [PATCH] remove `ExtraTerminal` diagnostic Error is unreachable, since the grammar defines the root node as `SourceUnit`, which is a greedy repetition. The generated parser ensures that extra tokens after a complete source unit are reported as `UnexpectedTerminal` for a new `SourceUnitMember` instead. --- .../cargo/common/generated/public_api.txt | 29 ------------------ .../kinds/syntax/extra_terminal.rs | 30 ------------------- .../src/diagnostics/kinds/syntax/mod.rs | 4 --- .../outputs/cargo/parser/src/parser/mod.rs | 20 +++---------- .../diagnostics_output/snapshots.generated.rs | 15 ++++++++-- .../generated/slang/0.8.0-failure.txt | 0 .../generated/solc/0.8.0-failure.txt | 0 .../{ => in_expression}/input.sol | 0 .../generated/slang/0.8.0-failure.txt | 11 +++++++ .../generated/solc/0.8.0-failure.txt | 11 +++++++ .../generated/solc/0.8.14-failure.txt | 11 +++++++ .../generated/solc/0.8.32-failure.txt | 11 +++++++ .../trailing_token/input.sol | 5 ++++ 13 files changed, 65 insertions(+), 82 deletions(-) delete mode 100644 crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/extra_terminal.rs rename crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/{ => in_expression}/generated/slang/0.8.0-failure.txt (100%) rename crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/{ => in_expression}/generated/solc/0.8.0-failure.txt (100%) rename crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/{ => in_expression}/input.sol (100%) create mode 100644 crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/slang/0.8.0-failure.txt create mode 100644 crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.0-failure.txt create mode 100644 crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.14-failure.txt create mode 100644 crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.32-failure.txt create mode 100644 crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/input.sol diff --git a/crates/solidity-v2/outputs/cargo/common/generated/public_api.txt b/crates/solidity-v2/outputs/cargo/common/generated/public_api.txt index 76111ff4a6..782c9728a1 100644 --- a/crates/solidity-v2/outputs/cargo/common/generated/public_api.txt +++ b/crates/solidity-v2/outputs/cargo/common/generated/public_api.txt @@ -342,7 +342,6 @@ pub fn slang_solidity_v2_common::diagnostics::kinds::structure::MultipleConstruc pub mod slang_solidity_v2_common::diagnostics::kinds::syntax pub enum slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind pub slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::ExpectedArrayLengthExpression(slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression) -pub slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::ExtraTerminal(slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal) pub slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::MultipleMutabilitySpecifiers(slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers) pub slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::MultipleOverrideSpecifiers(slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleOverrideSpecifiers) pub slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::MultipleVirtualSpecifiers(slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleVirtualSpecifiers) @@ -356,8 +355,6 @@ impl core::cmp::PartialEq for slang_solidity_v2_common::diagnostics::kinds::synt pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::eq(&self, other: &slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind) -> bool impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression) -> Self -impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal) -> Self impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers) -> Self impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind @@ -400,26 +397,6 @@ impl slang_solidity_v2_common::diagnostics::DiagnosticExtensions for slang_solid pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression::code(&self) -> &'static str pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression::message(&self) -> alloc::string::String pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression::severity(&self) -> slang_solidity_v2_common::diagnostics::DiagnosticSeverity -pub struct slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -pub slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::found: slang_solidity_v2_common::terminals::TerminalKind -impl core::clone::Clone for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::clone(&self) -> slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -impl core::cmp::Eq for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -impl core::cmp::PartialEq for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::eq(&self, other: &slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal) -> bool -impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind -pub fn slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal) -> Self -impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::SyntaxDiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal) -> Self -impl core::fmt::Debug for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -impl core::marker::StructuralPartialEq for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -impl serde_core::ser::Serialize for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde_core::ser::Serializer>::Ok, <__S as serde_core::ser::Serializer>::Error> where __S: serde_core::ser::Serializer -impl slang_solidity_v2_common::diagnostics::DiagnosticExtensions for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::code(&self) -> &'static str -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::message(&self) -> alloc::string::String -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::severity(&self) -> slang_solidity_v2_common::diagnostics::DiagnosticSeverity pub struct slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers impl core::clone::Clone for slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers::clone(&self) -> slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers @@ -607,8 +584,6 @@ impl core::convert::From Self impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind pub fn slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression) -> Self -impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind -pub fn slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal) -> Self impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind pub fn slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind::from(d: slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers) -> Self impl core::convert::From for slang_solidity_v2_common::diagnostics::kinds::DiagnosticKind @@ -740,10 +715,6 @@ impl slang_solidity_v2_common::diagnostics::DiagnosticExtensions for slang_solid pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression::code(&self) -> &'static str pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression::message(&self) -> alloc::string::String pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExpectedArrayLengthExpression::severity(&self) -> slang_solidity_v2_common::diagnostics::DiagnosticSeverity -impl slang_solidity_v2_common::diagnostics::DiagnosticExtensions for slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::code(&self) -> &'static str -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::message(&self) -> alloc::string::String -pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::ExtraTerminal::severity(&self) -> slang_solidity_v2_common::diagnostics::DiagnosticSeverity impl slang_solidity_v2_common::diagnostics::DiagnosticExtensions for slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers::code(&self) -> &'static str pub fn slang_solidity_v2_common::diagnostics::kinds::syntax::MultipleMutabilitySpecifiers::message(&self) -> alloc::string::String diff --git a/crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/extra_terminal.rs b/crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/extra_terminal.rs deleted file mode 100644 index 349274d23f..0000000000 --- a/crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/extra_terminal.rs +++ /dev/null @@ -1,30 +0,0 @@ -use serde::Serialize; - -use crate::diagnostics::extensions::DiagnosticExtensions; -use crate::diagnostics::severity::DiagnosticSeverity; -use crate::terminals::TerminalKind; - -/// Diagnostic emitted when additional input is found after the parser has -/// already consumed a complete source unit and expected end-of-file. -#[derive(Clone, Debug, Eq, PartialEq, Serialize)] -pub struct ExtraTerminal { - /// The extra terminal kind that was encountered past the end of the unit. - pub found: TerminalKind, -} - -impl DiagnosticExtensions for ExtraTerminal { - fn severity(&self) -> DiagnosticSeverity { - DiagnosticSeverity::Error - } - - fn code(&self) -> &'static str { - "syntax/extra-terminal" - } - - fn message(&self) -> String { - format!( - "Unexpected {found}. End of file was expected", - found = self.found - ) - } -} diff --git a/crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/mod.rs b/crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/mod.rs index c8c99aba5e..e226441d98 100644 --- a/crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/mod.rs +++ b/crates/solidity-v2/outputs/cargo/common/src/diagnostics/kinds/syntax/mod.rs @@ -1,5 +1,4 @@ mod expected_array_length_expression; -mod extra_terminal; mod multiple_mutability_specifiers; mod multiple_override_specifiers; mod multiple_virtual_specifiers; @@ -8,7 +7,6 @@ mod unexpected_terminal; mod unsupported_syntax; pub use expected_array_length_expression::ExpectedArrayLengthExpression; -pub use extra_terminal::ExtraTerminal; pub use multiple_mutability_specifiers::MultipleMutabilitySpecifiers; pub use multiple_override_specifiers::MultipleOverrideSpecifiers; pub use multiple_virtual_specifiers::MultipleVirtualSpecifiers; @@ -30,8 +28,6 @@ define_diagnostic_kind! { UnexpectedEof(UnexpectedEof), /// The parser encountered a terminal not valid at the current position. UnexpectedTerminal(UnexpectedTerminal), - /// The parser encountered extra input after a complete source unit. - ExtraTerminal(ExtraTerminal), /// A piece of syntax is not supported by the currently selected version. UnsupportedSyntax(UnsupportedSyntax), diff --git a/crates/solidity-v2/outputs/cargo/parser/src/parser/mod.rs b/crates/solidity-v2/outputs/cargo/parser/src/parser/mod.rs index 85cc872ca8..f0b0742a18 100644 --- a/crates/solidity-v2/outputs/cargo/parser/src/parser/mod.rs +++ b/crates/solidity-v2/outputs/cargo/parser/src/parser/mod.rs @@ -1,9 +1,7 @@ use std::collections::BTreeSet; use lalrpop_util::lalrpop_mod; -use slang_solidity_v2_common::diagnostics::kinds::syntax::{ - ExtraTerminal, UnexpectedEof, UnexpectedTerminal, -}; +use slang_solidity_v2_common::diagnostics::kinds::syntax::{UnexpectedEof, UnexpectedTerminal}; use slang_solidity_v2_common::diagnostics::DiagnosticCollection; use slang_solidity_v2_common::terminals::TerminalKind; use slang_solidity_v2_common::versions::LanguageVersion; @@ -143,19 +141,9 @@ fn convert_parse_error( }, ); } - lalrpop_util::ParseError::ExtraToken { - token: (left, lexeme, right), - } => { - diagnostics.push( - file_id.to_owned(), - left..right, - ExtraTerminal { - found: TerminalKind::from(&lexeme), - }, - ); - } - lalrpop_util::ParseError::User { .. } => panic!("The parser should never return a user error, since we're not using any custom error types in our grammar"), - lalrpop_util::ParseError::InvalidToken { .. } => panic!("The parser should never return an invalid token error, since it's not using the default lexer"), + lalrpop_util::ParseError::ExtraToken { .. } => unreachable!("The parser should never return an extra token error: the top-level `SourceUnit` rule is a greedy repetition"), + lalrpop_util::ParseError::User { .. } => unreachable!("The parser should never return a user error, since we're not using any custom error types in our grammar"), + lalrpop_util::ParseError::InvalidToken { .. } => unreachable!("The parser should never return an invalid token error, since it's not using the default lexer"), } } diff --git a/crates/solidity-v2/outputs/cargo/tests/src/diagnostics_output/snapshots.generated.rs b/crates/solidity-v2/outputs/cargo/tests/src/diagnostics_output/snapshots.generated.rs index f23a256f36..dd9dd3398d 100644 --- a/crates/solidity-v2/outputs/cargo/tests/src/diagnostics_output/snapshots.generated.rs +++ b/crates/solidity-v2/outputs/cargo/tests/src/diagnostics_output/snapshots.generated.rs @@ -171,9 +171,18 @@ mod syntax { run("syntax", "unexpected_eof") } - #[test] - fn unexpected_terminal() -> Result<()> { - run("syntax", "unexpected_terminal") + mod unexpected_terminal { + use super::*; + + #[test] + fn in_expression() -> Result<()> { + run("syntax/unexpected_terminal", "in_expression") + } + + #[test] + fn trailing_token() -> Result<()> { + run("syntax/unexpected_terminal", "trailing_token") + } } #[test] diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/generated/slang/0.8.0-failure.txt b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/in_expression/generated/slang/0.8.0-failure.txt similarity index 100% rename from crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/generated/slang/0.8.0-failure.txt rename to crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/in_expression/generated/slang/0.8.0-failure.txt diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/generated/solc/0.8.0-failure.txt b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/in_expression/generated/solc/0.8.0-failure.txt similarity index 100% rename from crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/generated/solc/0.8.0-failure.txt rename to crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/in_expression/generated/solc/0.8.0-failure.txt diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/input.sol b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/in_expression/input.sol similarity index 100% rename from crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/input.sol rename to crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/in_expression/input.sol diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/slang/0.8.0-failure.txt b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/slang/0.8.0-failure.txt new file mode 100644 index 0000000000..94e26856b9 --- /dev/null +++ b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/slang/0.8.0-failure.txt @@ -0,0 +1,11 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Diagnostics: 1 + +Error: Unexpected CloseBrace. One of AbstractKeyword, AddressKeyword, AtKeyword, BoolKeyword, BytesKeyword, ContractKeyword, EnumKeyword, ErrorKeyword, EventKeyword, FixedKeyword, FromKeyword, FunctionKeyword, GlobalKeyword, Identifier, ImportKeyword, IntKeyword, InterfaceKeyword, LayoutKeyword, LibraryKeyword, MappingKeyword, PragmaKeyword, RevertKeyword, StringKeyword, StructKeyword, TransientKeyword, TypeKeyword, UfixedKeyword, UintKeyword, UsingKeyword was expected + ╭─[input.sol:5:1] + │ + 5 │ } + │ ┬ + │ ╰── Error occurred here. +───╯ diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.0-failure.txt b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.0-failure.txt new file mode 100644 index 0000000000..7f97dbf75f --- /dev/null +++ b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.0-failure.txt @@ -0,0 +1,11 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Diagnostics: 1 + +[ParserError 7858] Error: Expected pragma, import directive or contract/interface/library/struct/enum/constant/function definition. + ╭─[input.sol:5:1] + │ + 5 │ } + │ ┬ + │ ╰── Error occurred here. +───╯ diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.14-failure.txt b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.14-failure.txt new file mode 100644 index 0000000000..e0031e6646 --- /dev/null +++ b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.14-failure.txt @@ -0,0 +1,11 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Diagnostics: 1 + +[ParserError 7858] Error: Expected pragma, import directive or contract/interface/library/struct/enum/constant/function/error definition. + ╭─[input.sol:5:1] + │ + 5 │ } + │ ┬ + │ ╰── Error occurred here. +───╯ diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.32-failure.txt b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.32-failure.txt new file mode 100644 index 0000000000..d5f5c0b27a --- /dev/null +++ b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/generated/solc/0.8.32-failure.txt @@ -0,0 +1,11 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +Diagnostics: 1 + +[ParserError 7858] Error: Expected pragma, import directive or contract/interface/library/user-defined type/constant/function/error/event definition. + ╭─[input.sol:5:1] + │ + 5 │ } + │ ┬ + │ ╰── Error occurred here. +───╯ diff --git a/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/input.sol b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/input.sol new file mode 100644 index 0000000000..fbfcf4a288 --- /dev/null +++ b/crates/solidity-v2/testing/snapshots/diagnostics_output/syntax/unexpected_terminal/trailing_token/input.sol @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: MIT +pragma solidity *; + +contract Foo {} +}