953f6ba6b6
Types based on type parameters which have both hasEnhancedNullability and hasFlexibleNullability were incorrectly converted to IR: only `@EnhancedNullability` annotation was added to the IR type. This means that the nullability of the type started to matter, which is incorrect because the type is supposed to be flexible. This backfired in the IR fake override builder mode, where nullability of methods inherited from both Kotlin maps and Java maps clashed, which resulted in the exception from FakeOverrideRebuilder. If the type is both flexible and enhanced, we're now adding `@FlexibleNullability` to the IR type. Note that `@EnhancedNullability` is not needed because it only affects primitive types which need to be handled as wrapper types on JVM, but `@FlexibleNullability` already has that effect. IR still slightly differs from K1 for collection subclasses, which can be seen for example in the changed IR text tests. This is to be investigated later. The change in tests is needed because the `kt48495*.kt` tests are now passing on K2 in the IR fake override builder mode, while failing on the vanilla K2. This is related to KT-61370 but does not entirely fix it, although curiously it fixes all remaining tests which were muted because of it.