From 489e390d72ea6e265a9e95bfa1cc94a289bb7ba9 Mon Sep 17 00:00:00 2001 From: azidar Date: Mon, 4 May 2015 15:18:40 -0700 Subject: Fixed bug where instance types were not lowered --- src/main/stanza/passes.stanza | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') 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)) -- cgit v1.2.3