@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.js.resolve.diagnostics.findPsi
26
26
import org.jetbrains.kotlin.psi.psiUtil.endOffset
27
27
import org.jetbrains.kotlin.psi.psiUtil.isAbstract
28
28
import org.jetbrains.kotlin.psi.psiUtil.startOffset
29
+ import org.jetbrains.kotlin.psi.psiUtil.unwrapNullability
29
30
import org.jetbrains.kotlin.types.TypeProjection
30
31
import org.jetbrains.kotlin.types.KotlinType
31
32
import org.jetbrains.kotlin.lexer.KtTokens
@@ -188,32 +189,34 @@ private fun parametersMatch(
188
189
): Boolean {
189
190
if (function.valueParameters.size == functionDescriptor.valueParameters.size) {
190
191
for (index in 0 until function.valueParameters.size) {
191
- LOG .info(" Method: {} {} - {} {}" , function.valueParameters[index].name, functionDescriptor.valueParameters[index].name.asString(), function.valueParameters[index].typeReference?.typeName() , functionDescriptor.valueParameters[index]
192
+ LOG .info(" Method: {} {} - {} {}" , function.valueParameters[index].name, functionDescriptor.valueParameters[index].name.asString(), function.valueParameters[index].typeReference?.typeElement?.unwrapNullability()?.name , functionDescriptor.valueParameters[index]
192
193
.type
193
194
.unwrappedType()
194
195
.toString())
195
196
if (function.valueParameters[index].name !=
196
- functionDescriptor.valueParameters[index].name.asString()
197
+ functionDescriptor.valueParameters[index].name.asString()
197
198
) {
198
199
return false
199
200
} else if (function.valueParameters[index].typeReference?.typeName() !=
200
201
functionDescriptor.valueParameters[index]
201
202
.type
202
203
.unwrappedType()
203
- .toString()
204
+ .toString() && function.valueParameters[index].typeReference?.typeName() != null
204
205
) {
206
+ // Any and Any? seems to be null for Kt* psi objects for some reason? At least for equals
207
+ // TODO: look further into this
208
+
205
209
// Note: Since we treat Java overrides as non nullable by default, the above test
206
210
// will fail when the user has made the type nullable.
207
211
// TODO: look into this
208
- // TODO: look into the weird issue with equals...
209
212
return false
210
213
}
211
214
}
212
215
213
216
if (function.typeParameters.size == functionDescriptor.typeParameters.size) {
214
217
for (index in 0 until function.typeParameters.size) {
215
218
if (function.typeParameters[index].variance !=
216
- functionDescriptor.typeParameters[index].variance
219
+ functionDescriptor.typeParameters[index].variance
217
220
) {
218
221
return false
219
222
}
0 commit comments