Generate INVOKEVIRTUAL 'contains(Object)' instead of 'contains(String)'
In cases when callee overrides Collection<String>.contains
This commit is contained in:
@@ -757,7 +757,7 @@ public class JetTypeMapper {
|
||||
}
|
||||
|
||||
FunctionDescriptor overriddenSpecialBuiltinFunction =
|
||||
SpecialBuiltinMembers.<FunctionDescriptor>getOverriddenBuiltinWithDifferentJvmName(functionDescriptor.getOriginal());
|
||||
SpecialBuiltinMembers.<FunctionDescriptor>getOverriddenBuiltinWithDifferentJvmDescriptor(functionDescriptor.getOriginal());
|
||||
FunctionDescriptor functionToCall = overriddenSpecialBuiltinFunction != null
|
||||
? overriddenSpecialBuiltinFunction.getOriginal()
|
||||
: functionDescriptor.getOriginal();
|
||||
|
||||
@@ -106,5 +106,4 @@ fun foo(
|
||||
// 4 INVOKEVIRTUAL A[0-9]\.contains \(Ljava/lang/Object;\)Z
|
||||
// 2 INVOKEVIRTUAL A7\.contains \(I\)Z
|
||||
// 1 INVOKEINTERFACE java/util/Collection.contains \(Ljava/lang/Object;\)Z
|
||||
// 1 INVOKEINTERFACE I1.contains \(Ljava/lang/Object;\)Z
|
||||
// 1 INVOKEINTERFACE I2.contains \(Ljava/lang/String;\)Z
|
||||
// 2 INVOKEINTERFACE I[1-2].contains \(Ljava/lang/Object;\)Z
|
||||
|
||||
Reference in New Issue
Block a user