diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt index 987112fe0ab..d03080cd315 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/extensions/SyntheticResolveExtension.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.lazy.LazyClassContext import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider import org.jetbrains.kotlin.types.KotlinType @@ -62,17 +63,19 @@ interface SyntheticResolveExtension { // todo revert override fun generateSyntheticMethods( thisDescriptor: ClassDescriptor, name: Name, + bindingContext: BindingContext, fromSupertypes: List, result: MutableCollection ) = - instances.forEach { it.generateSyntheticMethods(thisDescriptor, name, fromSupertypes, result) } + instances.forEach { it.generateSyntheticMethods(thisDescriptor, name, bindingContext, fromSupertypes, result) } override fun generateSyntheticProperties( thisDescriptor: ClassDescriptor, name: Name, + bindingContext: BindingContext, fromSupertypes: ArrayList, result: MutableSet ) = - instances.forEach { it.generateSyntheticProperties(thisDescriptor, name, fromSupertypes, result) } + instances.forEach { it.generateSyntheticProperties(thisDescriptor, name, bindingContext, fromSupertypes, result) } } } } @@ -97,6 +100,7 @@ interface SyntheticResolveExtension { fun generateSyntheticMethods( thisDescriptor: ClassDescriptor, name: Name, + bindingContext: BindingContext, fromSupertypes: List, result: MutableCollection ) { @@ -105,6 +109,7 @@ interface SyntheticResolveExtension { fun generateSyntheticProperties( thisDescriptor: ClassDescriptor, name: Name, + bindingContext: BindingContext, fromSupertypes: ArrayList, result: MutableSet ) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt index 78fdd8fd08c..10f9dcf6807 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/lazy/descriptors/LazyClassMemberScope.kt @@ -205,7 +205,7 @@ open class LazyClassMemberScope( } result.addAll(generateDelegatingDescriptors(name, EXTRACT_FUNCTIONS, result)) generateDataClassMethods(result, name, location, fromSupertypes) - c.syntheticResolveExtension.generateSyntheticMethods(thisDescriptor, name, fromSupertypes, result) + c.syntheticResolveExtension.generateSyntheticMethods(thisDescriptor, name, trace.bindingContext, fromSupertypes, result) generateFakeOverrides(name, fromSupertypes, result, SimpleFunctionDescriptor::class.java) } @@ -337,7 +337,7 @@ open class LazyClassMemberScope( fromSupertypes.addAll(supertype.memberScope.getContributedVariables(name, NoLookupLocation.FOR_ALREADY_TRACKED)) } result.addAll(generateDelegatingDescriptors(name, EXTRACT_PROPERTIES, result)) - c.syntheticResolveExtension.generateSyntheticProperties(thisDescriptor, name, fromSupertypes, result) + c.syntheticResolveExtension.generateSyntheticProperties(thisDescriptor, name, trace.bindingContext, fromSupertypes, result) generateFakeOverrides(name, fromSupertypes, result, PropertyDescriptor::class.java) } diff --git a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/parcel/ParcelableResolveExtension.kt b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/parcel/ParcelableResolveExtension.kt index 4a586bd1510..f8d4cef0fd4 100644 --- a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/parcel/ParcelableResolveExtension.kt +++ b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/parcel/ParcelableResolveExtension.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtElement +import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.module @@ -80,10 +81,11 @@ open class ParcelableResolveExtension : SyntheticResolveExtension { override fun getSyntheticCompanionObjectNameIfNeeded(thisDescriptor: ClassDescriptor) = null override fun generateSyntheticMethods( - clazz: ClassDescriptor, - name: Name, - fromSupertypes: List, - result: MutableCollection + clazz: ClassDescriptor, + name: Name, + bindingContext: BindingContext, + fromSupertypes: List, + result: MutableCollection ) { fun isExperimental(): Boolean { val sourceElement = (clazz.source as? PsiSourceElement)?.psi as? KtElement ?: return false