]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/convert.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / convert.go
index 4952e01b76c310afaf233b90b25121672a675f45..7280edf333cdc841b3d762d68a5684b66f6a0c3d 100644 (file)
@@ -1,53 +1,46 @@
-// $G $D/$F.go && $L $F.$A && ./$A.out
+// run
 
 // 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.
 
+// Test types of constant expressions, using reflect.
+
 package main
 
-import "unsafe"
+import "reflect"
 
-func typeof(x interface{}) string {
-       val, typ, indir := unsafe.Reflect(x);
-       return typ;
-}
+func typeof(x interface{}) string { return reflect.TypeOf(x).String() }
 
-func f() int {
-       return 0;
-}
+func f() int { return 0 }
 
-func g() int {
-       return 0;
-}
+func g() int { return 0 }
 
 type T func() int
 
-var m = map[string] T {
-       "f": f
-}
+var m = map[string]T{"f": f}
 
 type A int
 type B int
 
-var a A = 1;
-var b B = 2;
-var x int;
+var a A = 1
+var b B = 2
+var x int
 
 func main() {
-       want := typeof(g);
+       want := typeof(g)
        if t := typeof(f); t != want {
-               panicln("type of f is", t, "want", want);
+               println("type of f is", t, "want", want)
+               panic("fail")
        }
 
-       want = typeof(x);
+       want = typeof(a)
        if t := typeof(+a); t != want {
-               panicln("type of +a is", t, "want", want);
-       }
-       if t := typeof(a+0); t != want {
-               panicln("type of a+0 is", t, "want", want);
+               println("type of +a is", t, "want", want)
+               panic("fail")
        }
-       if t := typeof(a+b); t != want {
-               panicln("type of a+b is", t, "want", want);
+       if t := typeof(a + 0); t != want {
+               println("type of a+0 is", t, "want", want)
+               panic("fail")
        }
 }