summaryrefslogtreecommitdiff
path: root/source/Test/Unit/Source.hs
diff options
context:
space:
mode:
authoradelon <22380201+adelon@users.noreply.github.com>2026-08-01 16:56:47 +0200
committeradelon <22380201+adelon@users.noreply.github.com>2026-08-01 16:56:47 +0200
commit405d75c31e1298204baad186ced87ca55abf7d22 (patch)
tree61b56605cdf3bd3e387c3ed31d8ac0020e6f2c72 /source/Test/Unit/Source.hs
parent5bc3dd2f98cd4b561fa2b51ca494be48642fa054 (diff)
Fix module-major parse failure order
Diffstat (limited to 'source/Test/Unit/Source.hs')
-rw-r--r--source/Test/Unit/Source.hs40
1 files changed, 27 insertions, 13 deletions
diff --git a/source/Test/Unit/Source.hs b/source/Test/Unit/Source.hs
index 93ce0ca..3f6703e 100644
--- a/source/Test/Unit/Source.hs
+++ b/source/Test/Unit/Source.hs
@@ -148,8 +148,8 @@ unitTests = testGroup "Source resolution"
distinguishesPhysicalSourceLocations
, testCase "retains each workspace location display path"
retainsWorkspaceLocationDisplayPath
- , testCase "reports imported lexer errors before importer errors"
- reportsImportedLexerErrorFirst
+ , testCase "reports imported scanner errors before importer tokenizer errors"
+ reportsImportedScannerErrorFirst
, testCase "returns malformed lexical declarations as typed errors"
reportsMalformedLexicalDeclaration
, testCase "validates inductive function patterns during scanning"
@@ -3521,31 +3521,45 @@ retainsWorkspaceLocationDisplayPath =
(Just canonicalEntry)
(lookupFileIdentityPath innerFileId)
-reportsImportedLexerErrorFirst :: Assertion
-reportsImportedLexerErrorFirst =
+reportsImportedScannerErrorFirst :: Assertion
+reportsImportedScannerErrorFirst =
withTemporaryDirectory "felix-source-lexer-error-order" \temp -> do
- let malformedSource = unlines
+ let scannerFailure = unlines
+ [ "\\begin{abbreviation}\\label{malformed_function}"
+ , " $x = \\emptyset$."
+ , "\\end{abbreviation}"
+ ]
+ tokenizerFailure = unlines
[ "\\begin{axiom}"
, "#"
, "\\end{axiom}"
]
writeFile
(temp Posix.</> "imported.tex")
- malformedSource
+ scannerFailure
writeFile
(temp Posix.</> "entry.tex")
- ("\\import{imported.tex}\n" <> malformedSource)
+ ("\\import{imported.tex}\n" <> tokenizerFailure)
graph <- buildSearchedGraph temp "entry.tex"
result <- Parse.parseResolvedSourceGraph graph
case result of
- Left (Parse.SourceParseError source (Parse.TokenError _err)) ->
- assertEqual "first lexer error" "imported.tex"
- (safeRelativePathFilePath
- (resolvedSourceRelativePath source))
+ Left
+ (Parse.SourceParseError
+ source
+ (Parse.LexicalScanFailure
+ Adapt.InvalidFunctionPattern{})) ->
+ assertEqual
+ "dependency scanner error"
+ "imported.tex"
+ (safeRelativePathFilePath
+ (resolvedSourceRelativePath source))
Left err ->
- assertFailure ("expected lexer error, got " <> show err)
+ assertFailure
+ ("expected imported scanner error, got " <> show err)
Right workspace ->
- assertFailure ("expected lexer error, got " <> show workspace)
+ assertFailure
+ ("expected imported scanner error, got "
+ <> show workspace)
reportsMalformedLexicalDeclaration :: Assertion
reportsMalformedLexicalDeclaration =