Added captured types and approximation
CapturedType captures type projection while solving the constraint system. During the substitution type containing captured types is approximated to get rid of captured types and (for simple cases) replace them with corresponding type projections. Note that Array<Array< CapturedType(out Int) >> is (over)approximated by Array<out<Array<out Int>> See 'Mixed-site variance' by Ross Tate for details. #KT-2570 Fixed #KT-2872 Fixed #KT-3213 Fixed
This commit is contained in:
@@ -14280,15 +14280,15 @@ package java {
|
||||
|
||||
private final inner class EntryIterator : java.util.HashMap.HashIterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!> {
|
||||
private constructor EntryIterator()
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var current: java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var current: java.util.HashMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var index: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.HashMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.HashMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun remove(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -14342,15 +14342,15 @@ package java {
|
||||
|
||||
private final inner class KeyIterator : java.util.HashMap.HashIterator<K!> {
|
||||
private constructor KeyIterator()
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var current: java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var current: java.util.HashMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var index: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.HashMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): K!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.HashMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun remove(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -14377,15 +14377,15 @@ package java {
|
||||
|
||||
private final inner class ValueIterator : java.util.HashMap.HashIterator<V!> {
|
||||
private constructor ValueIterator()
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var current: java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var current: java.util.HashMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var index: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.HashMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): V!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.HashMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.HashMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun remove(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -15376,14 +15376,14 @@ package java {
|
||||
public/*package*/ final inner class DescendingKeyIterator : java.util.TreeMap.PrivateEntryIterator<K!> {
|
||||
public/*package*/ constructor DescendingKeyIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): K!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun remove(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -15510,14 +15510,14 @@ package java {
|
||||
public/*package*/ final inner class EntryIterator : java.util.TreeMap.PrivateEntryIterator<kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!> {
|
||||
public/*package*/ constructor EntryIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun remove(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -15545,14 +15545,14 @@ package java {
|
||||
public/*package*/ final inner class KeyIterator : java.util.TreeMap.PrivateEntryIterator<K!> {
|
||||
public/*package*/ constructor KeyIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): K!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun remove(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -15670,14 +15670,14 @@ package java {
|
||||
public/*package*/ constructor DescendingSubMapEntryIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!, /*1*/ p1: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ val fenceKey: kotlin.Any!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ fun remove(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeAscending(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeDescending(): kotlin.Unit
|
||||
@@ -15688,14 +15688,14 @@ package java {
|
||||
public/*package*/ constructor DescendingSubMapKeyIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!, /*1*/ p1: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ val fenceKey: kotlin.Any!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): K!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ fun remove(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeAscending(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeDescending(): kotlin.Unit
|
||||
@@ -15728,14 +15728,14 @@ package java {
|
||||
public/*package*/ constructor SubMapEntryIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!, /*1*/ p1: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ val fenceKey: kotlin.Any!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): kotlin.(Mutable)Map.(Mutable)Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ fun remove(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeAscending(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeDescending(): kotlin.Unit
|
||||
@@ -15764,14 +15764,14 @@ package java {
|
||||
public/*package*/ constructor SubMapKeyIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!, /*1*/ p1: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ val fenceKey: kotlin.Any!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): K!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ fun remove(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeAscending(): kotlin.Unit
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun removeDescending(): kotlin.Unit
|
||||
@@ -15833,14 +15833,14 @@ package java {
|
||||
public/*package*/ final inner class ValueIterator : java.util.TreeMap.PrivateEntryIterator<V!> {
|
||||
public/*package*/ constructor ValueIterator(/*0*/ p0: java.util.TreeMap.Entry<K!, V!>!)
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var expectedModCount: kotlin.Int
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var lastReturned: java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ var next: java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun next(): V!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K, V>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun nextEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public/*package*/ final override /*1*/ /*fake_override*/ fun prevEntry(): java.util.TreeMap.Entry<K!, V!>!
|
||||
public open override /*1*/ /*fake_override*/ fun remove(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user