Idris2/tests/idris2/error021/DeepAmbig.idr
Edwin Brady c861845757
Abandon ambiguity resolution on undefined name (#1907)
* Abandon ambiguity resolution on undefined name

This has finally annoyed me enough to do something about it. If we get a
"no such variable" error there's no point exploring other branches.

* Removes spaces from test file

One day I'll update the linter to ignore test files. We should really
accept literally anything as a possiblity for test files, even if
removing the spaces is tidier.

* Reset context before throwing in 'successful'

Although I don't think this is strictly necessary for a fatal error, we
should still for the sake of tidiness reset the state when backtracking.
2021-09-07 00:41:08 +01:00

51 lines
2.2 KiB
Idris

namespace A
export
x : Bool -> Bool
x = not
namespace B
export
x : Nat -> Bool
x Z = True
x _ = False
%ambiguity_depth 1000
-- There's an undefined name very deep here - if we don't take a shortcut,
-- this shows all the ambiguous branches with the undefined named!
test : Nat -> Bool
test val
= x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $
x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ x $ va