Do not force resolve descriptors for explicit imports. Create lazy scope instead.

This commit is contained in:
Stanislav Erokhin
2017-02-06 20:31:42 +03:00
parent cc429cd865
commit b616ef0a40
25 changed files with 333 additions and 183 deletions
@@ -0,0 +1,20 @@
// FILE: com/winterbe/domain/IEntity.java
package com.winterbe.domain;
import com.winterbe.observer.ObserverSupport;
public interface IEntity {
ObserverSupport getObserverSupport();
}
// FILE: 1.kt
package com.winterbe.observer
import com.winterbe.domain.IEntity
abstract class Observer : List<IEntity>
// FILE: 2.kt
package com.winterbe.observer
import com.winterbe.domain.IEntity
class ObserverSupport<T : IEntity>(private val observers: List<Observer>)
@@ -0,0 +1,47 @@
package
package com {
package com.winterbe {
package com.winterbe.domain {
public /*synthesized*/ fun IEntity(/*0*/ function: () -> com.winterbe.observer.ObserverSupport<(raw) com.winterbe.domain.IEntity>!): com.winterbe.domain.IEntity
public interface IEntity {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract fun getObserverSupport(): com.winterbe.observer.ObserverSupport<(raw) com.winterbe.domain.IEntity>!
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package com.winterbe.observer {
public abstract class Observer : kotlin.collections.List<com.winterbe.domain.IEntity> {
public constructor Observer()
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ element: com.winterbe.domain.IEntity): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<com.winterbe.domain.IEntity>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): com.winterbe.domain.IEntity
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun indexOf(/*0*/ element: com.winterbe.domain.IEntity): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.Iterator<com.winterbe.domain.IEntity>
public abstract override /*1*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: com.winterbe.domain.IEntity): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun listIterator(): kotlin.collections.ListIterator<com.winterbe.domain.IEntity>
public abstract override /*1*/ /*fake_override*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.ListIterator<com.winterbe.domain.IEntity>
public abstract override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.List<com.winterbe.domain.IEntity>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class ObserverSupport</*0*/ T : com.winterbe.domain.IEntity> {
public constructor ObserverSupport</*0*/ T : com.winterbe.domain.IEntity>(/*0*/ observers: kotlin.collections.List<com.winterbe.observer.Observer>)
private final val observers: kotlin.collections.List<com.winterbe.observer.Observer>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
}
}
@@ -0,0 +1,13 @@
// FILE: 1.kt
package a
import b.ObserverSupport
interface IEntity
fun IEntity(<!UNUSED_PARAMETER!>f<!>: ObserverSupport<IEntity>) {}
// FILE: 2.kt
package b
import a.IEntity
class ObserverSupport<T : IEntity>
@@ -0,0 +1,21 @@
package
package a {
public fun IEntity(/*0*/ f: b.ObserverSupport<a.IEntity>): kotlin.Unit
public interface IEntity {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
package b {
public final class ObserverSupport</*0*/ T : a.IEntity> {
public constructor ObserverSupport</*0*/ T : a.IEntity>()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}