Take declaration's origin element before looking for declaration by descriptor
This commit is contained in:
+3
-3
@@ -31,7 +31,6 @@ import org.jetbrains.jet.codegen.ClassBuilderMode
|
|||||||
import org.jetbrains.jet.lang.resolve.java.descriptor.SamAdapterDescriptor
|
import org.jetbrains.jet.lang.resolve.java.descriptor.SamAdapterDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils
|
import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils
|
||||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticSink
|
import org.jetbrains.jet.lang.diagnostics.DiagnosticSink
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope
|
|
||||||
|
|
||||||
class BuilderFactoryForDuplicateSignatureDiagnostics(
|
class BuilderFactoryForDuplicateSignatureDiagnostics(
|
||||||
builderFactory: ClassBuilderFactory,
|
builderFactory: ClassBuilderFactory,
|
||||||
@@ -82,7 +81,8 @@ class BuilderFactoryForDuplicateSignatureDiagnostics(
|
|||||||
|
|
||||||
var memberElement: PsiElement? = null
|
var memberElement: PsiElement? = null
|
||||||
var nonFakeCount = 0
|
var nonFakeCount = 0
|
||||||
for (member in origins.stream().map { it.descriptor as? CallableMemberDescriptor? }) {
|
for (origin in origins) {
|
||||||
|
val member = origin.descriptor as? CallableMemberDescriptor?
|
||||||
if (member != null && member.getKind() != FAKE_OVERRIDE) {
|
if (member != null && member.getKind() != FAKE_OVERRIDE) {
|
||||||
nonFakeCount++
|
nonFakeCount++
|
||||||
// If there's more than one real element, the clashing signature is already reported.
|
// If there's more than one real element, the clashing signature is already reported.
|
||||||
@@ -91,7 +91,7 @@ class BuilderFactoryForDuplicateSignatureDiagnostics(
|
|||||||
|
|
||||||
if (member.getKind() != DELEGATION) {
|
if (member.getKind() != DELEGATION) {
|
||||||
// Delegates don't have declarations in the code
|
// Delegates don't have declarations in the code
|
||||||
memberElement = DescriptorToSourceUtils.callableDescriptorToDeclaration(member)
|
memberElement = origin.element ?: DescriptorToSourceUtils.callableDescriptorToDeclaration(member)
|
||||||
if (memberElement == null && member is PropertyAccessorDescriptor) {
|
if (memberElement == null && member is PropertyAccessorDescriptor) {
|
||||||
memberElement = DescriptorToSourceUtils.callableDescriptorToDeclaration(member.getCorrespondingProperty())
|
memberElement = DescriptorToSourceUtils.callableDescriptorToDeclaration(member.getCorrespondingProperty())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user