@@ -1102,6 +1102,20 @@ func init() {
11021102 cycleMap3 ["different" ] = cycleMap3
11031103}
11041104
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+
11051119var deepEqualTests = []DeepEqualTest {
11061120 // Equalities
11071121 {nil , nil , true },
@@ -1119,6 +1133,7 @@ var deepEqualTests = []DeepEqualTest{
11191133 {[]byte {1 , 2 , 3 }, []byte {1 , 2 , 3 }, true },
11201134 {[]MyByte {1 , 2 , 3 }, []MyByte {1 , 2 , 3 }, true },
11211135 {MyBytes {1 , 2 , 3 }, MyBytes {1 , 2 , 3 }, true },
1136+ {map [deepEqualInterface ]string {deepEqualConcrete1 : "a" }, map [deepEqualInterface ]string {deepEqualConcrete1 : "a" }, true },
11221137
11231138 // Inequalities
11241139 {1 , 2 , false },
@@ -1140,6 +1155,7 @@ var deepEqualTests = []DeepEqualTest{
11401155 {fn3 , fn3 , false },
11411156 {[][]int {{1 }}, [][]int {{2 }}, false },
11421157 {& structWithSelfPtr {p : & structWithSelfPtr {s : "a" }}, & structWithSelfPtr {p : & structWithSelfPtr {s : "b" }}, false },
1158+ {map [deepEqualInterface ]string {deepEqualConcrete1 : "a" }, map [deepEqualInterface ]string {deepEqualConcrete2 : "a" }, false },
11431159
11441160 // Fun with floating point.
11451161 {math .NaN (), math .NaN (), false },
0 commit comments