diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/stanza/errors.stanza | 3 | ||||
| -rw-r--r-- | src/main/stanza/ir-utils.stanza | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/main/stanza/errors.stanza b/src/main/stanza/errors.stanza index 5212bcb5..edb9928e 100644 --- a/src/main/stanza/errors.stanza +++ b/src/main/stanza/errors.stanza @@ -735,7 +735,7 @@ public defn check-genders (c:Circuit) -> Circuit : [MALE, FEMALE] : add(errors,WrongGender(info,to-symbol(e),as-srcsnk(desired),as-srcsnk(gender))) [FEMALE, MALE] : - if kind* != PortKind() : + if kind* != PortKind() and kind* != InstanceKind(): add(errors,WrongGender(info,to-symbol(e),as-srcsnk(desired),as-srcsnk(gender))) else : false @@ -801,7 +801,6 @@ public defn check-genders (c:Circuit) -> Circuit : match(m) : (m:ExModule) : false (m:InModule) : check-genders-s(body(m),genders) - println(genders) throw(PassExceptions(errors)) when not empty?(errors) c diff --git a/src/main/stanza/ir-utils.stanza b/src/main/stanza/ir-utils.stanza index 2fb92407..8cfd1541 100644 --- a/src/main/stanza/ir-utils.stanza +++ b/src/main/stanza/ir-utils.stanza @@ -67,7 +67,11 @@ public defn get-sym-hash (m:InModule,keywords:List<Symbol>) -> HashTable<Symbol, s*[i] == '_' and digits?(substring(s*,i + 1)) match(i*) : (i:False) : - sym-hash[s] = 0 + if key?(sym-hash,s) : + val num = sym-hash[s] + sym-hash[s] = max(num,0) + else : + sym-hash[s] = 0 (i:Int) : val name = to-symbol(substring(s*,0,i)) val digit = to-int(substring(s*,i + 1)) |
