Use original descriptor when trying to obtain source
Also refine `getOriginal` of `DeclarationDescriptorWithSource` for comfortable use
This commit is contained in:
+4
@@ -21,4 +21,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
public interface DeclarationDescriptorWithSource extends DeclarationDescriptor {
|
||||
@NotNull
|
||||
SourceElement getSource();
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
DeclarationDescriptorWithSource getOriginal();
|
||||
}
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public DeclarationDescriptor getOriginal() {
|
||||
public DeclarationDescriptorWithSource getOriginal() {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
+7
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.descriptors.impl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorNonRoot;
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptorWithSource;
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement;
|
||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
@@ -45,6 +46,12 @@ public abstract class DeclarationDescriptorNonRootImpl
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public DeclarationDescriptorWithSource getOriginal() {
|
||||
return (DeclarationDescriptorWithSource) super.getOriginal();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public DeclarationDescriptor getContainingDeclaration() {
|
||||
|
||||
+1
-1
@@ -146,7 +146,7 @@ public class LazySubstitutingClassDescriptor implements ClassDescriptor {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public DeclarationDescriptor getOriginal() {
|
||||
public DeclarationDescriptorWithSource getOriginal() {
|
||||
return original.getOriginal();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ private fun JavaDescriptorResolver.getContainingScope(member: JavaMember): JetSc
|
||||
|
||||
private fun <T : DeclarationDescriptorWithSource> Collection<T>.findByJavaElement(javaElement: JavaElement): T? {
|
||||
return firstOrNull { member ->
|
||||
val memberJavaElement = (member.getSource() as? JavaSourceElement)?.javaElement
|
||||
val memberJavaElement = (member.getOriginal().getSource() as? JavaSourceElement)?.javaElement
|
||||
when {
|
||||
memberJavaElement == javaElement ->
|
||||
true
|
||||
|
||||
Reference in New Issue
Block a user