feat: allow zero or multiple imported names in import statement

Make the `for` clause in import statements optional, and support comma-separated lists of imported names when present. This removes the previous restriction of exactly one imported variable per import statement.

- Refactor `import()` in compiler to handle optional `for` clause with loop over comma-separated names
- Update existing tests to use comma-separated imports and omit `for` clause where appropriate
- Add new tests: `inside_block`, `name_collision`, `no_variable`
This commit is contained in:
Bob Nystrom
2015-02-17 15:32:33 +00:00
parent d96fc0a381
commit 0d3eae5269
11 changed files with 44 additions and 30 deletions
@@ -0,0 +1,10 @@
var Module = "outer"
if (true) {
import "module" for Module
// expect: ran module
IO.print(Module) // expect: from module
}
IO.print(Module) // expect: outer
+3
View File
@@ -0,0 +1,3 @@
// nontest
var Module = "from module"
IO.print("ran module")