In Kotlin I can write:
fun foo(): List<String> {
return ArrayList<String>().apply { "1234" }
}
and it works without any issues.
But I tried to do the same with my own generic class:
fun bar(): Matcher<String> {
return MyJsonNullableMatcher()
}
and I see error:
Type mismatch.
Required:
Matcher<String>
Found:
MyJsonNullableMatcher<String>
for me the error looks very unclear
More details:
import org.hamcrest.Matcher
import org.hamcrest.TypeSafeDiagnosingMatcher
class MyJsonNullableMatcher<T> : TypeSafeDiagnosingMatcher<JsonNullable<T>>() {
override fun describeTo(desc: Description) {
// doesn't matter
}
override fun matchesSafely(actual: JsonNullable<T>, mismatchDescription: Description): Boolean {
// doesn't matter
return true
}
}
TypeSafeDiagnosingMatcher` is an descendant of org.hamcrest.Matcher
Could you please clarify ?