Rebecca Turner
ee423f391d
- Use a recursive descent parser so that it's easy to extend.
- Add `@args` to enable customizing command-line arguments
- Add `@should-start` to enable `nix repl` tests that error before
entering the REPL
- Make sure to read all stdout output before comparing. This catches
some extra output we were tossing out before!
Change-Id: I5522555df4c313024ab15cd10f9f04e7293bda3a
93 lines
2.6 KiB
Plaintext
93 lines
2.6 KiB
Plaintext
@args --debugger
|
|
trace: before outer break
|
|
info: breakpoint reached
|
|
|
|
Here we are in the outer break and the let of "meow". st should show meow there
|
|
as it is in scope.
|
|
nix-repl> :st
|
|
|
|
0: error: breakpoint reached
|
|
«none»:0
|
|
Env level 0
|
|
static: meow
|
|
|
|
Env level 1
|
|
static: a b
|
|
|
|
Env level 2
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|
|
|
|
nix-repl> meow
|
|
2
|
|
|
|
If we :st past the frame in the backtrace with the meow in it, the meow should not be there.
|
|
|
|
nix-repl> :st 3
|
|
|
|
3: while calling a function
|
|
$TEST_DATA/stack_vars.nix:5:7
|
|
|
|
4| );
|
|
5| b = builtins.trace "before outer break" (
|
|
| ^
|
|
6| let meow = 2; in builtins.break a
|
|
|
|
Env level 0
|
|
static: a b
|
|
|
|
Env level 1
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|
|
|
|
nix-repl> :c
|
|
trace: before inner break
|
|
info: breakpoint reached
|
|
|
|
nix-repl> :st
|
|
|
|
0: error: breakpoint reached
|
|
«none»:0
|
|
Env level 0
|
|
static: meow'
|
|
|
|
Env level 1
|
|
static: a b
|
|
|
|
Env level 2
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|
|
|
|
nix-repl> meow'
|
|
3
|
|
|
|
nix-repl> :st 3
|
|
3: while calling a function
|
|
$TEST_DATA/stack_vars.nix:2:7
|
|
|
|
1| let
|
|
2| a = builtins.trace "before inner break" (
|
|
| ^
|
|
3| let meow' = 3; in builtins.break { msg = "hello"; }
|
|
|
|
Env level 0
|
|
static: a b
|
|
|
|
Env level 1
|
|
abort baseNameOf break builtins derivation derivationStrict dirOf false fetchGit fetchMercurial fetchTarball fetchTree fromTOML import isNull map null placeholder removeAttrs scopedImport throw toString true
|
|
|
|
nix-repl> :quit
|
|
error:
|
|
… while calling the 'trace' builtin
|
|
at $TEST_DATA/stack_vars.nix:2:7:
|
|
1| let
|
|
2| a = builtins.trace "before inner break" (
|
|
| ^
|
|
3| let meow' = 3; in builtins.break { msg = "hello"; }
|
|
|
|
… while calling the 'break' builtin
|
|
at $TEST_DATA/stack_vars.nix:3:23:
|
|
2| a = builtins.trace "before inner break" (
|
|
3| let meow' = 3; in builtins.break { msg = "hello"; }
|
|
| ^
|
|
4| );
|
|
|
|
error: breakpoint reached
|