It's valuable to check your runtime values and to shut down the entire engine in case something doesn't match. This patch adds some magic plumbing to support a "panic" mechanism. A new "panic" statement gets transparently converted into a panic function and panic resource. The former errors if the input is not empty. The latter must be present to consume the value, but doesn't actually do anything.
19 lines
436 B
Plaintext
19 lines
436 B
Plaintext
import "panic/" as nested # local, relative module to prove it can nest
|
|
|
|
panic("") # should NOT panic
|
|
panic("") # should NOT panic
|
|
panic("fail1") # should panic
|
|
panic("fail2") # should panic
|
|
|
|
include nested.foo()
|
|
|
|
test "test" {
|
|
anotherstr => "hello!\n",
|
|
}
|
|
|
|
# this is what we're simulating:
|
|
#$_panic1 = panic("whatever1") # this is a function
|
|
#_panic $_panic1 {} # this is a resource
|
|
#$_panic2 = panic("whatever2")
|
|
#_panic $_panic2 {}
|