Skip to content
This repository was archived by the owner on Jul 17, 2024. It is now read-only.

Commit 64342ac

Browse files
chore: consider genericArgs contents in TypeHint equals and hashCode
Although we don't use TypeHint in maps nor sets and don't currently check them for equality, we might do it later.
1 parent ea82847 commit 64342ac

File tree

1 file changed

+21
-0
lines changed
  • jpyinterpreter/src/main/java/ai/timefold/jpyinterpreter

1 file changed

+21
-0
lines changed

jpyinterpreter/src/main/java/ai/timefold/jpyinterpreter/TypeHint.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package ai.timefold.jpyinterpreter;
22

33
import java.util.ArrayList;
4+
import java.util.Arrays;
45
import java.util.Collections;
56
import java.util.List;
7+
import java.util.Objects;
68

79
import ai.timefold.jpyinterpreter.types.PythonLikeType;
810

@@ -31,4 +33,23 @@ public static TypeHint withoutAnnotations(PythonLikeType type) {
3133
return new TypeHint(type, Collections.emptyList());
3234
}
3335

36+
@Override
37+
public boolean equals(Object o) {
38+
if (this == o) {
39+
return true;
40+
}
41+
if (!(o instanceof TypeHint typeHint)) {
42+
return false;
43+
}
44+
return Objects.equals(type, typeHint.type) && Objects.deepEquals(genericArgs,
45+
typeHint.genericArgs)
46+
&& Objects.equals(javaGetterType,
47+
typeHint.javaGetterType)
48+
&& Objects.equals(annotationList, typeHint.annotationList);
49+
}
50+
51+
@Override
52+
public int hashCode() {
53+
return Objects.hash(type, annotationList, Arrays.hashCode(genericArgs), javaGetterType);
54+
}
3455
}

0 commit comments

Comments
 (0)