Currently 6g seems to resolve them to type "double".
R=ken,r
DELTA=30 (30 added, 0 deleted, 0 changed)
OCL=16132
CL=16152
--- /dev/null
+// $G $D/$F.go || echo BUG: should compile
+
+// 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.
+
+package main
+func f(a float) float {
+ e := 1.0;
+ e = e * a;
+ return e;
+}
+
+/*
+6g bugs/bug109.go
+bugs/bug109.go:5: illegal types for operand: MUL
+ (<float64>FLOAT64)
+ (<float32>FLOAT32)
+bugs/bug109.go:5: illegal types for operand: AS
+ (<float64>FLOAT64)
+bugs/bug109.go:6: illegal types for operand: RETURN
+ (<float32>FLOAT32)
+ (<float64>FLOAT64)
+*/
bugs/bug108.go:4: stupid shift: 1025
BUG: errchk: command succeeded unexpectedly: 6g bugs/bug108.go
+=========== bugs/bug109.go
+bugs/bug109.go:5: illegal types for operand: MUL
+ (<float64>FLOAT64)
+ (<float32>FLOAT32)
+bugs/bug109.go:5: illegal types for operand: AS
+ (<float64>FLOAT64)
+bugs/bug109.go:6: illegal types for operand: RETURN
+ (<float32>FLOAT32)
+ (<float64>FLOAT64)
+BUG: should compile
+
=========== fixedbugs/bug016.go
fixedbugs/bug016.go:7: overflow converting constant to <uint32>UINT32