Skip to content

Commit 4b342a8

Browse files
SONARPY-2332 review fixes
1 parent 399db7e commit 4b342a8

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

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

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@
3131

3232
public class RuntimeType implements InferredType {
3333

34-
// Name of the type returned by the type() function
35-
private static final String TYPE_CLASS_NAME = "type";
36-
3734
private ClassSymbol typeClass;
3835
private String builtinFullyQualifiedName;
3936
private Set<String> typeClassSuperClassesFQN = null;
@@ -55,18 +52,16 @@ public boolean isIdentityComparableWith(InferredType other) {
5552
if (other instanceof UnionType) {
5653
return other.isIdentityComparableWith(this);
5754
}
58-
if (isComparingTypeWithMetaclass(other)) {
59-
return true;
60-
}
61-
return this.equals(other);
55+
return isComparingTypeWithMetaclass(other) || this.equals(other);
6256
}
6357

6458
private boolean isComparingTypeWithMetaclass(InferredType other) {
6559
if (other instanceof RuntimeType otherRuntimeType) {
60+
String typeName = ((RuntimeType) InferredTypes.TYPE).getTypeClass().name();
6661
boolean hasOtherMetaClass = hasMetaclassInHierarchy(otherRuntimeType);
6762
boolean hasThisMetaClass = hasMetaclassInHierarchy(this);
68-
return (TYPE_CLASS_NAME.equals(getTypeClass().name()) && hasOtherMetaClass)
69-
|| (hasThisMetaClass && TYPE_CLASS_NAME.equals(otherRuntimeType.getTypeClass().name()));
63+
return (typeName.equals(getTypeClass().name()) && hasOtherMetaClass)
64+
|| (hasThisMetaClass && typeName.equals(otherRuntimeType.getTypeClass().name()));
7065
}
7166
return false;
7267
}

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ void isIdentityComparableWith() {
6666

6767
@Test
6868
void isIdentityComparableWithMetaclass() {
69-
RuntimeType typeType = new RuntimeType(new ClassSymbolImpl("type", "type"));
70-
7169
ClassSymbolImpl metaclassSymbol = new ClassSymbolImpl("Meta", "Meta");
7270
metaclassSymbol.setHasMetaClass();
7371
RuntimeType metaClassType = new RuntimeType(metaclassSymbol);
@@ -78,16 +76,16 @@ void isIdentityComparableWithMetaclass() {
7876

7977
UnknownClassType unknownClassType = new UnknownClassType(metaclassSymbol);
8078

81-
assertThat(typeType.isIdentityComparableWith(typeType)).isTrue();
82-
assertThat(typeType.isIdentityComparableWith(metaClassType)).isTrue();
83-
assertThat(typeType.isIdentityComparableWith(superMetaClassType)).isTrue();
84-
assertThat(typeType.isIdentityComparableWith(unknownClassType)).isFalse();
79+
assertThat(InferredTypes.TYPE.isIdentityComparableWith(InferredTypes.TYPE)).isTrue();
80+
assertThat(InferredTypes.TYPE.isIdentityComparableWith(metaClassType)).isTrue();
81+
assertThat(InferredTypes.TYPE.isIdentityComparableWith(superMetaClassType)).isTrue();
82+
assertThat(InferredTypes.TYPE.isIdentityComparableWith(unknownClassType)).isFalse();
8583

86-
assertThat(metaClassType.isIdentityComparableWith(typeType)).isTrue();
84+
assertThat(metaClassType.isIdentityComparableWith(InferredTypes.TYPE)).isTrue();
8785
assertThat(metaClassType.isIdentityComparableWith(metaClassType)).isTrue();
8886
assertThat(metaClassType.isIdentityComparableWith(superMetaClassType)).isFalse();
8987

90-
assertThat(superMetaClassType.isIdentityComparableWith(typeType)).isTrue();
88+
assertThat(superMetaClassType.isIdentityComparableWith(InferredTypes.TYPE)).isTrue();
9189
assertThat(superMetaClassType.isIdentityComparableWith(metaClassType)).isFalse();
9290
assertThat(superMetaClassType.isIdentityComparableWith(superMetaClassType)).isTrue();
9391
}

0 commit comments

Comments
 (0)