diff options
| author | adelon <22380201+adelon@users.noreply.github.com> | 2026-08-01 16:56:47 +0200 |
|---|---|---|
| committer | adelon <22380201+adelon@users.noreply.github.com> | 2026-08-01 16:56:47 +0200 |
| commit | 405d75c31e1298204baad186ced87ca55abf7d22 (patch) | |
| tree | 61b56605cdf3bd3e387c3ed31d8ac0020e6f2c72 /source/Test/Unit/Source.hs | |
| parent | 5bc3dd2f98cd4b561fa2b51ca494be48642fa054 (diff) | |
Fix module-major parse failure order
Diffstat (limited to 'source/Test/Unit/Source.hs')
| -rw-r--r-- | source/Test/Unit/Source.hs | 40 |
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 = |
