diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java index 61b2844df7a..df46691a6dc 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/sam/SingleAbstractMethodUtils.java @@ -29,11 +29,10 @@ import org.jetbrains.kotlin.load.java.lazy.types.LazyJavaTypeResolver; import org.jetbrains.kotlin.load.java.structure.*; import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; +import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolverKt; import org.jetbrains.kotlin.resolve.jvm.JavaResolverUtils; -import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter; -import org.jetbrains.kotlin.resolve.scopes.KtScope; import org.jetbrains.kotlin.types.*; import java.util.*; @@ -47,7 +46,7 @@ public class SingleAbstractMethodUtils { @NotNull public static List getAbstractMembers(@NotNull KotlinType type) { List abstractMembers = new ArrayList(); - for (DeclarationDescriptor member : type.getMemberScope().getDescriptors(DescriptorKindFilter.CALLABLES, KtScope.Companion.getALL_NAME_FILTER())) { + for (DeclarationDescriptor member : DescriptorUtils.getAllDescriptors(type.getMemberScope())) { if (member instanceof CallableMemberDescriptor && ((CallableMemberDescriptor) member).getModality() == Modality.ABSTRACT) { abstractMembers.add((CallableMemberDescriptor) member); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/NoSubpackagesInPackageScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/NoSubpackagesInPackageScope.kt index 6732c1d80fc..db619bd4389 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/NoSubpackagesInPackageScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/NoSubpackagesInPackageScope.kt @@ -34,7 +34,4 @@ class NoSubpackagesInPackageScope(packageDescriptor: PackageViewDescriptor) : Ab return workerScope.getDescriptors(modifiedFilter, nameFilter).filter { it !is PackageViewDescriptor } } - override fun getOwnDeclaredDescriptors(): Collection { - return workerScope.getOwnDeclaredDescriptors().filter { it !is PackageViewDescriptor } - } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java index 684680a5bf9..293d66e4d43 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java @@ -38,8 +38,6 @@ import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.resolve.calls.callResolverUtil.CallResolverUtilKt; import org.jetbrains.kotlin.resolve.dataClassUtils.DataClassUtilsKt; -import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter; -import org.jetbrains.kotlin.resolve.scopes.KtScope; import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue; import org.jetbrains.kotlin.types.*; import org.jetbrains.kotlin.types.checker.KotlinTypeChecker; @@ -245,7 +243,7 @@ public class OverrideResolver { private static List getCallableMembersFromType(KotlinType type) { List r = Lists.newArrayList(); - for (DeclarationDescriptor decl : type.getMemberScope().getDescriptors(DescriptorKindFilter.CALLABLES, KtScope.Companion.getALL_NAME_FILTER())) { + for (DeclarationDescriptor decl : DescriptorUtils.getAllDescriptors(type.getMemberScope())) { if (decl instanceof PropertyDescriptor || decl instanceof SimpleFunctionDescriptor) { r.add((CallableMemberDescriptor) decl); } @@ -307,8 +305,7 @@ public class OverrideResolver { @NotNull Set abstractInBaseClassNoImpl, @NotNull Set conflictingInterfaceOverrides ) { - for (DeclarationDescriptor member : classDescriptor.getDefaultType().getMemberScope() - .getDescriptors(DescriptorKindFilter.CALLABLES, KtScope.Companion.getALL_NAME_FILTER())) { + for (DeclarationDescriptor member : DescriptorUtils.getAllDescriptors(classDescriptor.getDefaultType().getMemberScope())) { if (member instanceof CallableMemberDescriptor) { collectMissingImplementations((CallableMemberDescriptor) member, abstractNoImpl, manyImpl, @@ -815,8 +812,7 @@ public class OverrideResolver { private void checkParameterOverridesForAllClasses(@NotNull TopDownAnalysisContext c) { for (ClassDescriptorWithResolutionScopes classDescriptor : c.getDeclaredClasses().values()) { - for (DeclarationDescriptor member : classDescriptor.getDefaultType().getMemberScope() - .getDescriptors(DescriptorKindFilter.CALLABLES, KtScope.Companion.getALL_NAME_FILTER())) { + for (DeclarationDescriptor member : DescriptorUtils.getAllDescriptors(classDescriptor.getDefaultType().getMemberScope())) { if (member instanceof CallableMemberDescriptor) { checkOverridesForParameters((CallableMemberDescriptor) member); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt index 079a3eb48e5..22fb8927087 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/AbstractLazyMemberScope.kt @@ -175,8 +175,6 @@ protected constructor( // a generic implementation can't do this properly abstract override fun toString(): String - override fun getOwnDeclaredDescriptors() = getDescriptors() - override fun printScopeStructure(p: Printer) { p.println(javaClass.getSimpleName(), " {") p.pushIndent() diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java index 162029090a0..12c02f1ee6d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassDescriptor.java @@ -46,7 +46,6 @@ import org.jetbrains.kotlin.resolve.lazy.data.JetClassLikeInfo; import org.jetbrains.kotlin.resolve.lazy.data.JetClassOrObjectInfo; import org.jetbrains.kotlin.resolve.lazy.data.JetObjectInfo; import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider; -import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter; import org.jetbrains.kotlin.resolve.scopes.KtScope; import org.jetbrains.kotlin.resolve.scopes.LexicalScope; import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass; @@ -60,7 +59,10 @@ import org.jetbrains.kotlin.types.KotlinType; import org.jetbrains.kotlin.types.TypeConstructor; import org.jetbrains.kotlin.types.TypeUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; import static kotlin.CollectionsKt.firstOrNull; import static org.jetbrains.kotlin.diagnostics.Errors.CYCLIC_INHERITANCE_HIERARCHY; @@ -475,7 +477,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes getOriginal(); getScopeForClassHeaderResolution(); getScopeForMemberDeclarationResolution(); - getUnsubstitutedMemberScope().getDescriptors(DescriptorKindFilter.ALL, KtScope.Companion.getALL_NAME_FILTER()); + DescriptorUtils.getAllDescriptors(getUnsubstitutedMemberScope()); getScopeForInitializerResolution(); getUnsubstitutedInnerClassesScope(); getTypeConstructor().getSupertypes(); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt index 8cf152027db..cb950575e8e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/scopes/FilteringScope.kt @@ -39,8 +39,6 @@ public class FilteringScope(private val workerScope: KtScope, private val predic override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean) = workerScope.getDescriptors(kindFilter, nameFilter).filter(predicate) - override fun getOwnDeclaredDescriptors() = workerScope.getOwnDeclaredDescriptors().filter(predicate) - override fun printScopeStructure(p: Printer) { p.println(javaClass.getSimpleName(), " {") p.pushIndent() diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt index 498edcd2979..b707058044e 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt @@ -227,7 +227,6 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? = classifierMap[name] override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection = classifierMap.values - override fun getOwnDeclaredDescriptors(): Collection = classifierMap.values } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt index cb8fd2f0ec8..c487b015f53 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaScope.kt @@ -303,8 +303,6 @@ public abstract class LazyJavaScope( return properties(name) } - override fun getOwnDeclaredDescriptors() = getDescriptors() - override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean) = allDescriptors() diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt index d861be2136f..c6f72b33011 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/AbstractScopeAdapter.kt @@ -58,10 +58,6 @@ public abstract class AbstractScopeAdapter : KtScope { return workerScope.getDescriptors(kindFilter, nameFilter) } - override fun getOwnDeclaredDescriptors(): Collection { - return workerScope.getOwnDeclaredDescriptors() - } - override fun printScopeStructure(p: Printer) { p.println(javaClass.getSimpleName(), " {") p.pushIndent() diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt index 0d7d8ab61d7..d9159d2e6e4 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/ChainedScope.kt @@ -47,10 +47,6 @@ public open class ChainedScope( override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean) = getFromAllScopes(scopeChain) { it.getDescriptors(kindFilter, nameFilter) } - override fun getOwnDeclaredDescriptors(): Collection { - throw UnsupportedOperationException() - } - override fun toString() = debugName override fun printScopeStructure(p: Printer) { diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScope.kt index b2324ce8412..b647c679db1 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScope.kt @@ -36,14 +36,6 @@ public interface KtScope { public fun getContainingDeclaration(): DeclarationDescriptor - /** - * All visible descriptors from current scope. - * - * @return All visible descriptors from current scope. - */ - @Deprecated("Removed in progress", ReplaceWith("getDescriptors()")) - public fun getAllDescriptors(): Collection = getDescriptors() - /** * All visible descriptors from current scope possibly filtered by the given name and kind filters * (that means that the implementation is not obliged to use the filters but may do so when it gives any performance advantage). @@ -53,9 +45,6 @@ public interface KtScope { nameFilter: (Name) -> Boolean = ALL_NAME_FILTER ): Collection - // todo merge with getAllDescriptors() - public fun getOwnDeclaredDescriptors(): Collection - /** * Is supposed to be used in tests and debug only */ diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScopeImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScopeImpl.kt index 4aaf7749b88..c7c95d38227 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScopeImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/KtScopeImpl.kt @@ -33,8 +33,6 @@ abstract class KtScopeImpl : KtScope { override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection = emptyList() - override fun getOwnDeclaredDescriptors(): Collection = emptyList() - // This method should not be implemented here by default: every scope class has its unique structure pattern abstract override fun printScopeStructure(p: Printer) } diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt index 74e0b30dbec..132966fec57 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/StaticScopeForKotlinClass.kt @@ -51,8 +51,6 @@ public class StaticScopeForKotlinClass( override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean) = functions + properties - override fun getOwnDeclaredDescriptors() = functions + properties - override fun getProperties(name: Name, location: LookupLocation) = properties.filterTo(ArrayList(1)) { it.name == name } override fun getFunctions(name: Name, location: LookupLocation) = functions.filterTo(ArrayList(2)) { it.getName() == name } diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt index 52d402f4f4e..0210458531b 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/scopes/SubstitutingScope.kt @@ -72,8 +72,6 @@ public class SubstitutingScope(private val workerScope: KtScope, private val sub override fun getDescriptors(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean) = _allDescriptors - override fun getOwnDeclaredDescriptors() = substitute(workerScope.getOwnDeclaredDescriptors()) - override fun printScopeStructure(p: Printer) { p.println(javaClass.getSimpleName(), " {") p.pushIndent() diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java index b5739b3a21e..9c4eebcf50c 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/ErrorUtils.java @@ -204,18 +204,6 @@ public class ErrorUtils { return Collections.emptyList(); } - @NotNull - @Override - public Collection getAllDescriptors() { - return Collections.emptyList(); - } - - @NotNull - @Override - public Collection getOwnDeclaredDescriptors() { - return Collections.emptyList(); - } - @Override public String toString() { return "ErrorScope{" + debugMessage + '}'; @@ -272,18 +260,6 @@ public class ErrorUtils { throw new IllegalStateException(); } - @NotNull - @Override - public Collection getAllDescriptors() { - throw new IllegalStateException(); - } - - @NotNull - @Override - public Collection getOwnDeclaredDescriptors() { - throw new IllegalStateException(); - } - @Override public String toString() { return "ThrowingScope{" + debugMessage + '}'; diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt index 99b3add7bd1..39d876fc29b 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/descriptors/DeserializedMemberScope.kt @@ -175,8 +175,6 @@ public abstract class DeserializedMemberScope protected constructor( protected abstract fun addEnumEntryDescriptors(result: MutableCollection, nameFilter: (Name) -> Boolean) - override fun getOwnDeclaredDescriptors() = getDescriptors() - override fun printScopeStructure(p: Printer) { p.println(javaClass.simpleName, " {") p.pushIndent() diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.java index 59cf81c0e83..be69fcd75f1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.java +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.java @@ -42,6 +42,7 @@ import org.jetbrains.kotlin.idea.util.ScopeUtils; import org.jetbrains.kotlin.psi.*; import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils; +import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.bindingContextUtil.BindingContextUtilsKt; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode; @@ -110,7 +111,7 @@ public abstract class BaseKotlinVariableMacro extends Macro { Collection result = ContainerUtil.newArrayList(); result.addAll(ScopeUtilsKt.collectDescriptorsFiltered(scope, DescriptorKindFilter.VARIABLES, KtScope.Companion.getALL_NAME_FILTER())); for (ReceiverParameterDescriptor implicitReceiver : ScopeUtilsKt.getImplicitReceiversHierarchy(scope)) { - result.addAll(implicitReceiver.getType().getMemberScope().getDescriptors(DescriptorKindFilter.VARIABLES, KtScope.Companion.getALL_NAME_FILTER())); + result.addAll(DescriptorUtils.getAllDescriptors(implicitReceiver.getType().getMemberScope())); } return result; } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/JetTestFunctionDetector.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/JetTestFunctionDetector.java index 79af34db769..eb7f8396116 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/JetTestFunctionDetector.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/general/JetTestFunctionDetector.java @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.psi.KtClass; import org.jetbrains.kotlin.psi.KtDeclaration; import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.resolve.BindingContext; -import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter; +import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.scopes.KtScope; import org.jetbrains.kotlin.types.KotlinType; @@ -96,7 +96,7 @@ public class JetTestFunctionDetector { } if (scope != null) { - Collection allDescriptors = scope.getDescriptors(DescriptorKindFilter.FUNCTIONS, KtScope.Companion.getALL_NAME_FILTER()); + Collection allDescriptors = DescriptorUtils.getAllDescriptors(scope); List testFunctions = ContainerUtil.mapNotNull( allDescriptors, new Function() { diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java index a097769a3cb..6c861acaeee 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/ManglingUtils.java @@ -31,7 +31,6 @@ import org.jetbrains.kotlin.js.descriptorUtils.DescriptorUtilsKt; import org.jetbrains.kotlin.name.FqNameUnsafe; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.DescriptorUtils; -import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter; import org.jetbrains.kotlin.resolve.scopes.KtScope; import java.util.*; @@ -175,7 +174,7 @@ public class ManglingUtils { if (jetScope != null) { final String finalNameToCompare = nameToCompare; - Collection declarations = jetScope.getDescriptors(DescriptorKindFilter.CALLABLES, KtScope.Companion.getALL_NAME_FILTER()); + Collection declarations = DescriptorUtils.getAllDescriptors(jetScope); List overloadedFunctions = CollectionsKt.flatMap(declarations, new Function1>() { @Override