@@ -1102,6 +1102,20 @@ func init() {
1102
1102
cycleMap3 ["different" ] = cycleMap3
1103
1103
}
1104
1104
1105
+ type deepEqualInterface interface {
1106
+ Foo ()
1107
+ }
1108
+ type deepEqualConcrete struct {
1109
+ int
1110
+ }
1111
+
1112
+ func (deepEqualConcrete ) Foo () {}
1113
+
1114
+ var (
1115
+ deepEqualConcrete1 = deepEqualConcrete {1 }
1116
+ deepEqualConcrete2 = deepEqualConcrete {2 }
1117
+ )
1118
+
1105
1119
var deepEqualTests = []DeepEqualTest {
1106
1120
// Equalities
1107
1121
{nil , nil , true },
@@ -1119,6 +1133,7 @@ var deepEqualTests = []DeepEqualTest{
1119
1133
{[]byte {1 , 2 , 3 }, []byte {1 , 2 , 3 }, true },
1120
1134
{[]MyByte {1 , 2 , 3 }, []MyByte {1 , 2 , 3 }, true },
1121
1135
{MyBytes {1 , 2 , 3 }, MyBytes {1 , 2 , 3 }, true },
1136
+ {map [deepEqualInterface ]string {deepEqualConcrete1 : "a" }, map [deepEqualInterface ]string {deepEqualConcrete1 : "a" }, true },
1122
1137
1123
1138
// Inequalities
1124
1139
{1 , 2 , false },
@@ -1140,6 +1155,7 @@ var deepEqualTests = []DeepEqualTest{
1140
1155
{fn3 , fn3 , false },
1141
1156
{[][]int {{1 }}, [][]int {{2 }}, false },
1142
1157
{& structWithSelfPtr {p : & structWithSelfPtr {s : "a" }}, & structWithSelfPtr {p : & structWithSelfPtr {s : "b" }}, false },
1158
+ {map [deepEqualInterface ]string {deepEqualConcrete1 : "a" }, map [deepEqualInterface ]string {deepEqualConcrete2 : "a" }, false },
1143
1159
1144
1160
// Fun with floating point.
1145
1161
{math .NaN (), math .NaN (), false },
0 commit comments