Skip to content

cmd/compile: inconsistent error message for assignment mismatch #30085

@smasher164

Description

@smasher164

Example runs on playground with go1.11.1.
https://play.golang.org/p/UoxPKcFBMCG

package main

func main() {
	var a, b = 1 // prog.go:4:6: assignment mismatch: 2 variables but 1 values
	var c, d = 1, 2, 3 // prog.go:5:6: extra expression in var declaration
	var e, f, g = 1, 2 // prog.go:6:6: missing expression in var declaration
	h, i, j := 1, 2 // prog.go:7:10: assignment mismatch: 3 variables but 2 values
}

The two messages in the middle for “extra” and “missing” expressions don’t actually point to the offending expression that unbalances the assignment, making the message less useful. Moreover, a slight modification to the Lhs and Rhs results in the much more clear, “assignment mismatch” message. In my opinion, all of these declarations should result in the assignment mismatch error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions