Value classes: Forbid any identity equality check on value class
#KT-31130 Fixed
This commit is contained in:
+3
-3
@@ -1110,13 +1110,13 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
if (KotlinBuiltIns.isPrimitiveType(leftType)) {
|
||||
context.trace.report(DEPRECATED_IDENTITY_EQUALS.on(expression, leftType, rightType));
|
||||
}
|
||||
else if (InlineClassesUtilsKt.isInlineClassType(leftType)) {
|
||||
context.trace.report(FORBIDDEN_IDENTITY_EQUALS.on(expression, leftType, rightType));
|
||||
}
|
||||
}
|
||||
else if (isIdentityComparedWithImplicitBoxing(leftType, rightType) || isIdentityComparedWithImplicitBoxing(rightType, leftType)) {
|
||||
context.trace.report(IMPLICIT_BOXING_IN_IDENTITY_EQUALS.on(expression, leftType, rightType));
|
||||
}
|
||||
if (InlineClassesUtilsKt.isInlineClassType(leftType) || InlineClassesUtilsKt.isInlineClassType(rightType)) {
|
||||
context.trace.report(FORBIDDEN_IDENTITY_EQUALS.on(expression, leftType, rightType));
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isIdentityComparedWithImplicitBoxing(KotlinType leftType, KotlinType rightType) {
|
||||
|
||||
Reference in New Issue
Block a user