summary refs log tree commit diff stats
path: root/compiler/parampatterns.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/parampatterns.nim')
-rw-r--r--compiler/parampatterns.nim4
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