diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-06-27 10:24:25 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-06-27 10:24:25 -0700 |
| commit | 31293d61d3ec80198eab2439ec937d7ba37f6722 (patch) | |
| tree | 5d58272d219064234c6e90d7271caef5e118a77d /tests | |
| parent | 1716208fb62a7f0a8bbe55e597b582066cb51731 (diff) | |
Allow for re-export of an `import` declaration
If module `A.slang` contains `__exported __import B;` then any declarations from `B.slang` will be visible to any client code that does `__import A;`.
This allows a user to make a single "umbrella" file that encompases a bunch of code files.
Note that this really only affects scoping during Slang compilation/checking; at code generation time everything always gets emitted as raw HLSL/GLSL so that names will be visible whether we want them to be or not.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/front-end/import-exported-a.slang | 5 | ||||
| -rw-r--r-- | tests/front-end/import-exported-b.slang | 5 | ||||
| -rw-r--r-- | tests/front-end/import-exported.slang | 8 |
3 files changed, 18 insertions, 0 deletions
diff --git a/tests/front-end/import-exported-a.slang b/tests/front-end/import-exported-a.slang new file mode 100644 index 000000000..b624241e5 --- /dev/null +++ b/tests/front-end/import-exported-a.slang @@ -0,0 +1,5 @@ +//TEST_IGNORE_FILE: + +// This file imports other code, and re-exports it to clients of this module. + +__exported __import import_exported_b;
\ No newline at end of file diff --git a/tests/front-end/import-exported-b.slang b/tests/front-end/import-exported-b.slang new file mode 100644 index 000000000..144f62060 --- /dev/null +++ b/tests/front-end/import-exported-b.slang @@ -0,0 +1,5 @@ +//TEST_IGNORE_FILE: + +// This file defines the code that will be (transitively) imported into `import-exported.slang` + +float foo(float x) { return x; }
\ No newline at end of file diff --git a/tests/front-end/import-exported.slang b/tests/front-end/import-exported.slang new file mode 100644 index 000000000..7c2d911dd --- /dev/null +++ b/tests/front-end/import-exported.slang @@ -0,0 +1,8 @@ +//TEST:SIMPLE: + +// Confirming that we can use a re-exported function + +// `a` imports `b` (which defines `foo`) and re-exports it +__import import_exported_a; + +float bar(float x) { return foo(x); }
\ No newline at end of file |
