diff options
| author | azidar | 2015-05-04 15:18:40 -0700 |
|---|---|---|
| committer | azidar | 2015-05-04 15:18:40 -0700 |
| commit | 489e390d72ea6e265a9e95bfa1cc94a289bb7ba9 (patch) | |
| tree | 1fe5c268e2c43af6ea2720533688efeba7fc15e4 /src | |
| parent | b0571566566c11858485bc0f93c36e427ffbab27 (diff) | |
Fixed bug where instance types were not lowered
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/stanza/passes.stanza | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main/stanza/passes.stanza b/src/main/stanza/passes.stanza index 910b7f3d..c8a4e15c 100644 --- a/src/main/stanza/passes.stanza +++ b/src/main/stanza/passes.stanza @@ -772,7 +772,14 @@ defn lower (body:Stmt) -> Stmt : (s:DefRegister) : Begin{_} $ for x in generate-entry(name(s),type(s)) map : DefRegister(name(x),type(x)) - (s:DefInstance) : s + (s:DefInstance) : + val fields = + for f in fields(type(module(s)) as BundleType) map-append : + val etfs = generate-entry(name(f),type(f)) + for etf in etfs map : + Field(name(etf),flip(etf) * flip(f),type(etf)) + val m = module(s) as WRef + DefInstance(name(s),WRef(name(m),BundleType(fields),kind(m),gender(m))) (s:DefNode) : Begin $ for x in expand-expr(value(s)) map : DefNode(name(s),exp(x)) |
