...
Run Format

Source file test/fixedbugs/bug277.go

Documentation: test/fixedbugs

  // compile
  
  // Copyright 2010 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.
  
  // Test cases for conversion syntax.
  
  package main
  
  type (
  	A [3]int
  	S struct {
  		x int
  	}
  	P *S
  	F func(x int) int
  	I interface {
  		m(x int) int
  	}
  	L []int
  	M map[string]int
  	C chan int
  )
  
  func (s S) m(x int) int { return x }
  
  var (
  	a A = [...]int{1, 2, 3}
  	s S = struct{ x int }{0}
  	p P = &s
  	f F = func(x int) int { return x }
  	i I = s
  	l L = []int{}
  	m M = map[string]int{"foo": 0}
  	c C = make(chan int)
  )
  
  func main() {
  	a = A(a)
  	a = [3]int(a)
  	s = struct {
  		x int
  	}(s)
  	p = (*S)(p)
  	f = func(x int) int(f)
  	i = (interface {
  		m(x int) int
  	})(s) // this is accepted by 6g
  	i = interface {
  		m(x int) int
  	}(s) // this is not accepted by 6g (but should be)
  	l = []int(l)
  	m = map[string]int(m)
  	c = chan int(c)
  	_ = chan<- int(c)
  	_ = <-(chan int)(c)
  	_ = <-(<-chan int)(c)
  }
  
  /*
  6g bug277.go
  bug277.go:46: syntax error: unexpected (, expecting {
  bug277.go:50: syntax error: unexpected interface
  bug277.go:53: non-declaration statement outside function body
  bug277.go:54: non-declaration statement outside function body
  bug277.go:55: syntax error: unexpected LCHAN
  bug277.go:56: syntax error: unexpected LCHAN
  bug277.go:57: non-declaration statement outside function body
  bug277.go:58: non-declaration statement outside function body
  bug277.go:59: syntax error: unexpected }
  */
  

View as plain text