"compress/gzip": {"L4", "compress/flate"},
"compress/lzw": {"L4"},
"compress/zlib": {"L4", "compress/flate"},
- "context": {"errors", "fmt", "reflect", "sync", "time"},
+ "context": {"errors", "fmt", "internal/reflectlite", "sync", "time"},
"database/sql": {"L4", "container/list", "context", "database/sql/driver", "database/sql/internal"},
"database/sql/driver": {"L4", "context", "time", "database/sql/internal"},
"debug/dwarf": {"L4"},
// do networking portably, it must have a small dependency set: just L0+basic os.
"net": {
"L0", "CGO",
- "context", "math/rand", "os", "reflect", "sort", "syscall", "time",
+ "context", "math/rand", "os", "sort", "syscall", "time",
"internal/nettrace", "internal/poll", "internal/syscall/unix",
"internal/syscall/windows", "internal/singleflight", "internal/race",
"golang.org/x/net/dns/dnsmessage", "golang.org/x/net/lif", "golang.org/x/net/route",
// AssignableTo reports whether a value of the type is assignable to type u.
AssignableTo(u Type) bool
+ // Comparable reports whether values of this type are comparable.
+ Comparable() bool
+
// Elem returns a type's element type.
// It panics if the type's Kind is not Ptr.
Elem() Type
return directlyAssignable(uu, t) || implements(uu, t)
}
+func (t *rtype) Comparable() bool {
+ return t.alg != nil && t.alg.equal != nil
+}
+
// implements reports whether the type V implements the interface type T.
func implements(T, V *rtype) bool {
if T.Kind() != Interface {