From 81298346f1e512b0537a2063b390ebfc920c3f04 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Mon, 8 Jul 2024 23:30:24 +0200 Subject: Document known bugs --- BUGS | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 BUGS (limited to 'BUGS') diff --git a/BUGS b/BUGS new file mode 100644 index 0000000..2638f5c --- /dev/null +++ b/BUGS @@ -0,0 +1,18 @@ +1. Nested functions should inherit constants from parent scopes, but not + local variables. At the moment the former works, but when trying to + (incorrectly) use a local variable from an outer scope in an inner + function, the compiler crashes: + + foo :: () { + x := 42; + X :: 69; + + bar :: () int { return x; } /* not fine; breaks */ + baz :: () int { return X; } /* totally fine */ + } + + This is presumably due to the compiler maintaining a single tree of + scopes where a scope contains information for both constants and + variables. If this is indeed the cause, then there should most + probably be separate scope-trees; one which has scopes for constants, + and one which has scopes for variables. -- cgit v1.2.3