...
Run Format

Source file test/assign.go

Documentation: test

  // errorcheck
  
  // Copyright 2009 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  // Verify simple assignment errors are caught by the compiler.
  // Does not compile.
  
  package main
  
  import "sync"
  
  type T struct {
  	int
  	sync.Mutex
  }
  
  func main() {
  	{
  		var x, y sync.Mutex
  		x = y // ok
  		_ = x
  	}
  	{
  		var x, y T
  		x = y // ok
  		_ = x
  	}
  	{
  		var x, y [2]sync.Mutex
  		x = y // ok
  		_ = x
  	}
  	{
  		var x, y [2]T
  		x = y // ok
  		_ = x
  	}
  	{
  		x := sync.Mutex{0, 0} // ERROR "assignment.*Mutex"
  		_ = x
  	}
  	{
  		x := sync.Mutex{key: 0} // ERROR "(unknown|assignment).*Mutex"
  		_ = x
  	}
  	{
  		x := &sync.Mutex{} // ok
  		var y sync.Mutex   // ok
  		y = *x             // ok
  		*x = y             // ok
  		_ = x
  		_ = y
  	}
  	{
  		var x = 1
  		{
  			x, x := 2, 3 // ERROR "x repeated on left side of :="
  			_ = x
  		}
  		_ = x
  	}
  	{
  		a, a := 1, 2 // ERROR "a repeated on left side of :="
  		_ = a
  	}
  }
  

View as plain text