diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/parampatterns.nim | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/parampatterns.nim b/compiler/parampatterns.nim index 55b4bf213..b7fe269df 100644 --- a/compiler/parampatterns.nim +++ b/compiler/parampatterns.nim @@ -184,12 +184,14 @@ proc isAssignable*(owner: PSym, n: PNode): TAssignableResult = case n.kind of nkSym: # don't list 'skLet' here: - if n.sym.kind in {skVar, skResult, skTemp, skParam}: + if n.sym.kind in {skVar, skResult, skTemp}: if owner != nil and owner.id == n.sym.owner.id and sfGlobal notin n.sym.flags: result = arLocalLValue else: result = arLValue + elif n.sym.kind == skParam and n.sym.typ.kind == tyVar: + result = arLValue elif n.sym.kind == skType: let t = n.sym.typ.skipTypes({tyTypeDesc}) if t.kind == tyVar: result = arStrange |