Skip to content

Commit 3922032

Browse files
andreaguarinoguillaume-dequenne
authored andcommitted
RuntimeType equals method should consider typeclass name
1 parent d8f755e commit 3922032

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

python-frontend/src/main/java/org/sonar/python/types/RuntimeType.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ public boolean equals(Object o) {
9898
return false;
9999
}
100100
RuntimeType that = (RuntimeType) o;
101-
return Objects.equals(typeClass.fullyQualifiedName(), that.typeClass.fullyQualifiedName())
101+
return Objects.equals(typeClass.name(), that.typeClass.name()) &&
102+
Objects.equals(typeClass.fullyQualifiedName(), that.typeClass.fullyQualifiedName())
102103
&& Objects.equals(typeClassSuperClassesFQN(), that.typeClassSuperClassesFQN())
103104
&& Objects.equals(typeClassMembersFQN(), that.typeClassMembersFQN());
104105
}
@@ -123,7 +124,7 @@ boolean hasUnresolvedHierarchy() {
123124

124125
@Override
125126
public int hashCode() {
126-
return Objects.hash(typeClass.fullyQualifiedName(), typeClassSuperClassesFQN(), typeClassMembersFQN());
127+
return Objects.hash(typeClass.name(), typeClass.fullyQualifiedName(), typeClassSuperClassesFQN(), typeClassMembersFQN());
127128
}
128129

129130
@Override

python-frontend/src/test/java/org/sonar/python/types/RuntimeTypeTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,21 @@ public void test_equals() {
143143
RuntimeType aTypeWithMember2 = new RuntimeType(aWithMember2);
144144
assertThat(aTypeWithMember).isNotEqualTo(aType);
145145
assertThat(aTypeWithMember).isEqualTo(aTypeWithMember2);
146+
147+
RuntimeType x = new RuntimeType(new ClassSymbolImpl("X", null));
148+
RuntimeType y = new RuntimeType(new ClassSymbolImpl("Y", null));
149+
assertThat(x).isNotEqualTo(y);
146150
}
147151

148152
@Test
149153
public void test_hashCode() {
150154
RuntimeType aType = new RuntimeType(a);
151155
assertThat(aType.hashCode()).isEqualTo(new RuntimeType(a).hashCode());
152156
assertThat(aType.hashCode()).isNotEqualTo(new RuntimeType(b).hashCode());
157+
158+
RuntimeType x = new RuntimeType(new ClassSymbolImpl("X", null));
159+
RuntimeType y = new RuntimeType(new ClassSymbolImpl("Y", null));
160+
assertThat(x.hashCode()).isNotEqualTo(y.hashCode());
153161
}
154162

155163
@Test

0 commit comments

Comments
 (0)