[fidl] Decode interfaces as handles

Their encoding is identical.

This appears to have regressed in ce73265.

Tests will need to be added to conformance tests in fuchsia.git.

Bug: 62636
Change-Id: I74d87698cf68c37bb2f8eb4d8806cc69a65302b9
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/go/+/442518
Reviewed-by: Pascal Perez <pascallouis@google.com>
Reviewed-by: Benjamin Prosnitz <bprosnitz@google.com>
Commit-Queue: Tamir Duberstein <tamird@google.com>
diff --git a/src/syscall/zx/fidl/encoding_new.go b/src/syscall/zx/fidl/encoding_new.go
index 1656098..9ecf911 100644
--- a/src/syscall/zx/fidl/encoding_new.go
+++ b/src/syscall/zx/fidl/encoding_new.go
@@ -280,14 +280,14 @@
 	case mEmptyStruct:
 		// Note: empty struct is 0 or 1 bytes at different times in go.
 		return false
-	case mHandle:
+	case mHandle, mInterface:
 		// Note: In the future, we might instead consider treating handles
 		// like uint32 and decoding in a subsequent step.
 		return false
 	case mXUnion, mOptXUnion, mTable, mVector, mOptVector, mString, mOptString, mPointer:
 		return false
 	default:
-		panic("unhandledType " + reflect.TypeOf(marshaler).Name())
+		panic("unhandledType " + reflect.TypeOf(marshaler).Name() + " for " + typ.String())
 	}
 }