diff --git a/src/cmd/compile/internal/types2/stmt.go b/src/cmd/compile/internal/types2/stmt.go
index 7fd7009..1984777 100644
--- a/src/cmd/compile/internal/types2/stmt.go
+++ b/src/cmd/compile/internal/types2/stmt.go
@@ -923,19 +923,26 @@
 				check.errorf(lhs, InvalidSyntaxTree, "cannot declare %s", lhs)
 				obj = NewVar(lhs.Pos(), check.pkg, "_", nil) // dummy variable
 			}
+			assert(obj.typ == nil)
+
+			// initialize lhs iteration variable, if any
+			typ := rhs[i]
+			if typ == nil {
+				obj.typ = Typ[Invalid]
+				obj.used = true // don't complain about unused variable
+				continue
+			}
 
 			// initialize lhs variable
 			if constIntRange {
 				check.initVar(obj, &x, "range clause")
-			} else if typ := rhs[i]; typ != nil {
+			} else {
 				x.mode = value
 				x.expr = lhs // we don't have a better rhs expression to use here
 				x.typ = typ
 				check.initVar(obj, &x, "assignment") // error is on variable, use "assignment" not "range clause"
-			} else {
-				obj.typ = Typ[Invalid]
-				obj.used = true // don't complain about unused variable
 			}
+			assert(obj.typ != nil)
 		}
 
 		// declare variables
@@ -954,9 +961,15 @@
 				continue
 			}
 
+			// assign to lhs iteration variable, if any
+			typ := rhs[i]
+			if typ == nil {
+				continue
+			}
+
 			if constIntRange {
 				check.assignVar(lhs, nil, &x, "range clause")
-			} else if typ := rhs[i]; typ != nil {
+			} else {
 				x.mode = value
 				x.expr = lhs // we don't have a better rhs expression to use here
 				x.typ = typ
diff --git a/src/go/types/stmt.go b/src/go/types/stmt.go
index 30b4948..bfb51fd 100644
--- a/src/go/types/stmt.go
+++ b/src/go/types/stmt.go
@@ -923,19 +923,26 @@
 				check.errorf(lhs, InvalidSyntaxTree, "cannot declare %s", lhs)
 				obj = NewVar(lhs.Pos(), check.pkg, "_", nil) // dummy variable
 			}
+			assert(obj.typ == nil)
+
+			// initialize lhs iteration variable, if any
+			typ := rhs[i]
+			if typ == nil {
+				obj.typ = Typ[Invalid]
+				obj.used = true // don't complain about unused variable
+				continue
+			}
 
 			// initialize lhs variable
 			if constIntRange {
 				check.initVar(obj, &x, "range clause")
-			} else if typ := rhs[i]; typ != nil {
+			} else {
 				x.mode = value
 				x.expr = lhs // we don't have a better rhs expression to use here
 				x.typ = typ
 				check.initVar(obj, &x, "assignment") // error is on variable, use "assignment" not "range clause"
-			} else {
-				obj.typ = Typ[Invalid]
-				obj.used = true // don't complain about unused variable
 			}
+			assert(obj.typ != nil)
 		}
 
 		// declare variables
@@ -954,9 +961,15 @@
 				continue
 			}
 
+			// assign to lhs iteration variable, if any
+			typ := rhs[i]
+			if typ == nil {
+				continue
+			}
+
 			if constIntRange {
 				check.assignVar(lhs, nil, &x, "range clause")
-			} else if typ := rhs[i]; typ != nil {
+			} else {
 				x.mode = value
 				x.expr = lhs // we don't have a better rhs expression to use here
 				x.typ = typ
