]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/codegen/switch.go
cmd/compile: improve interface type switches
[gostls13.git] / test / codegen / switch.go
index 556d02a162cd0519133bc0d24c930389f1c223af..63b0dce8a63cb0342bb9fb1688fd47511fb6635a 100644 (file)
@@ -118,3 +118,24 @@ func typeSwitch(x any) int {
        }
        return 7
 }
+
+type I interface {
+       foo()
+}
+type J interface {
+       bar()
+}
+
+// use a runtime call for type switches to interface types.
+func interfaceSwitch(x any) int {
+       // amd64:`CALL\truntime.interfaceSwitch`
+       // arm64:`CALL\truntime.interfaceSwitch`
+       switch x.(type) {
+       case I:
+               return 1
+       case J:
+               return 2
+       default:
+               return 3
+       }
+}