Replaced JetFunction with JetNamedFunction.
Replaced JetDeclaration with JetNamedDeclaration.
This commit is contained in:
@@ -59,7 +59,7 @@ public class JetSourceNavigationHelper {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private static<D extends ClassOrNamespaceDescriptor> Pair<BindingContext, D>
|
private static<D extends ClassOrNamespaceDescriptor> Pair<BindingContext, D>
|
||||||
getBindingContextAndClassOrNamespaceDescriptor(@NotNull ReadOnlySlice<FqName, D> slice,
|
getBindingContextAndClassOrNamespaceDescriptor(@NotNull ReadOnlySlice<FqName, D> slice,
|
||||||
@NotNull JetDeclaration declaration,
|
@NotNull JetNamedDeclaration declaration,
|
||||||
@Nullable FqName fqName) {
|
@Nullable FqName fqName) {
|
||||||
if (fqName == null || DumbService.isDumb(declaration.getProject())) {
|
if (fqName == null || DumbService.isDumb(declaration.getProject())) {
|
||||||
return null;
|
return null;
|
||||||
@@ -80,16 +80,17 @@ public class JetSourceNavigationHelper {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static Pair<BindingContext, ClassDescriptor> getBindingContextAndClassDescriptor(@NotNull JetClassOrObject decompiledClassOrObject) {
|
private static Pair<BindingContext, ClassDescriptor> getBindingContextAndClassDescriptor(@NotNull JetClassOrObject decompiledClassOrObject) {
|
||||||
return getBindingContextAndClassOrNamespaceDescriptor(BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, decompiledClassOrObject,
|
JetNamedDeclaration asNamed = (JetNamedDeclaration) decompiledClassOrObject;
|
||||||
JetPsiUtil.getFQName((JetNamedDeclaration) decompiledClassOrObject));
|
return getBindingContextAndClassOrNamespaceDescriptor(
|
||||||
|
BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, asNamed, JetPsiUtil.getFQName(asNamed));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static Pair<BindingContext, NamespaceDescriptor> getBindingContextAndNamespaceDescriptor(
|
private static Pair<BindingContext, NamespaceDescriptor> getBindingContextAndNamespaceDescriptor(
|
||||||
@NotNull JetDeclaration declaration) {
|
@NotNull JetNamedDeclaration declaration) {
|
||||||
JetFile file = (JetFile) declaration.getContainingFile();
|
JetFile file = (JetFile) declaration.getContainingFile();
|
||||||
return getBindingContextAndClassOrNamespaceDescriptor(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, declaration,
|
return getBindingContextAndClassOrNamespaceDescriptor(
|
||||||
JetPsiUtil.getFQName(file));
|
BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, declaration, JetPsiUtil.getFQName(file));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -119,7 +120,7 @@ public class JetSourceNavigationHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static List<JetFile> findAllSourceFilesWhichContainIdentifier(@NotNull JetDeclaration jetDeclaration) {
|
private static List<JetFile> findAllSourceFilesWhichContainIdentifier(@NotNull JetNamedDeclaration jetDeclaration) {
|
||||||
VirtualFile libraryFile = jetDeclaration.getContainingFile().getVirtualFile();
|
VirtualFile libraryFile = jetDeclaration.getContainingFile().getVirtualFile();
|
||||||
String name = jetDeclaration.getName();
|
String name = jetDeclaration.getName();
|
||||||
if (libraryFile == null || name == null) {
|
if (libraryFile == null || name == null) {
|
||||||
@@ -141,7 +142,7 @@ public class JetSourceNavigationHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static <Decl extends JetDeclaration> Pair<BindingContext, JetScope> getBindingContextAndMemberScopeForLibrarySources(
|
private static <Decl extends JetNamedDeclaration> Pair<BindingContext, JetScope> getBindingContextAndMemberScopeForLibrarySources(
|
||||||
@NotNull Decl decompiledDeclaration) {
|
@NotNull Decl decompiledDeclaration) {
|
||||||
PsiElement declarationContainer = decompiledDeclaration.getParent();
|
PsiElement declarationContainer = decompiledDeclaration.getParent();
|
||||||
|
|
||||||
@@ -187,7 +188,7 @@ public class JetSourceNavigationHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private static <Decl extends JetDeclaration, Descr extends CallableDescriptor> JetDeclaration
|
private static <Decl extends JetNamedDeclaration, Descr extends CallableDescriptor> JetNamedDeclaration
|
||||||
getSourcePropertyOrFunction(
|
getSourcePropertyOrFunction(
|
||||||
@NotNull Decl decompiledDeclaration,
|
@NotNull Decl decompiledDeclaration,
|
||||||
@NotNull NavigationStrategy<Decl, Descr> navigationStrategy
|
@NotNull NavigationStrategy<Decl, Descr> navigationStrategy
|
||||||
@@ -207,7 +208,7 @@ public class JetSourceNavigationHelper {
|
|||||||
if (candidate.getContainingDeclaration() == expectedContainer
|
if (candidate.getContainingDeclaration() == expectedContainer
|
||||||
&& receiversMatch(receiverType, candidate.getReceiverParameter())
|
&& receiversMatch(receiverType, candidate.getReceiverParameter())
|
||||||
&& navigationStrategy.declarationAndDescriptorMatch(decompiledDeclaration, candidate)) {
|
&& navigationStrategy.declarationAndDescriptorMatch(decompiledDeclaration, candidate)) {
|
||||||
return (JetDeclaration) BindingContextUtils.descriptorToDeclaration(bindingContext, candidate);
|
return (JetNamedDeclaration) BindingContextUtils.descriptorToDeclaration(bindingContext, candidate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,16 +229,16 @@ public class JetSourceNavigationHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static JetDeclaration getSourceProperty(final @NotNull JetProperty decompiledProperty) {
|
public static JetNamedDeclaration getSourceProperty(final @NotNull JetProperty decompiledProperty) {
|
||||||
return getSourcePropertyOrFunction(decompiledProperty, new PropertyNavigationStrategy());
|
return getSourcePropertyOrFunction(decompiledProperty, new PropertyNavigationStrategy());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static JetDeclaration getSourceFunction(final @NotNull JetFunction decompiledFunction) {
|
public static JetNamedDeclaration getSourceFunction(final @NotNull JetNamedFunction decompiledFunction) {
|
||||||
return getSourcePropertyOrFunction(decompiledFunction, new FunctionNavigationStrategy());
|
return getSourcePropertyOrFunction(decompiledFunction, new FunctionNavigationStrategy());
|
||||||
}
|
}
|
||||||
|
|
||||||
private interface NavigationStrategy<Decl extends JetDeclaration, Descr extends CallableDescriptor> {
|
private interface NavigationStrategy<Decl extends JetNamedDeclaration, Descr extends CallableDescriptor> {
|
||||||
boolean declarationAndDescriptorMatch(@NotNull Decl declaration, @NotNull Descr descriptor);
|
boolean declarationAndDescriptorMatch(@NotNull Decl declaration, @NotNull Descr descriptor);
|
||||||
|
|
||||||
@NotNull Collection<Descr> getCandidateDescriptors(@NotNull JetScope scope, @NotNull Name name);
|
@NotNull Collection<Descr> getCandidateDescriptors(@NotNull JetScope scope, @NotNull Name name);
|
||||||
@@ -245,9 +246,9 @@ public class JetSourceNavigationHelper {
|
|||||||
@Nullable JetTypeReference getReceiverType(@NotNull Decl declaration);
|
@Nullable JetTypeReference getReceiverType(@NotNull Decl declaration);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class FunctionNavigationStrategy implements NavigationStrategy<JetFunction, FunctionDescriptor> {
|
private static class FunctionNavigationStrategy implements NavigationStrategy<JetNamedFunction, FunctionDescriptor> {
|
||||||
@Override
|
@Override
|
||||||
public boolean declarationAndDescriptorMatch(@NotNull JetFunction declaration, @NotNull FunctionDescriptor descriptor) {
|
public boolean declarationAndDescriptorMatch(@NotNull JetNamedFunction declaration, @NotNull FunctionDescriptor descriptor) {
|
||||||
List<JetParameter> declarationParameters = declaration.getValueParameters();
|
List<JetParameter> declarationParameters = declaration.getValueParameters();
|
||||||
List<ValueParameterDescriptor> descriptorParameters = descriptor.getValueParameters();
|
List<ValueParameterDescriptor> descriptorParameters = descriptor.getValueParameters();
|
||||||
if (descriptorParameters.size() != declarationParameters.size()) {
|
if (descriptorParameters.size() != declarationParameters.size()) {
|
||||||
@@ -285,7 +286,7 @@ public class JetSourceNavigationHelper {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public JetTypeReference getReceiverType(@NotNull JetFunction declaration) {
|
public JetTypeReference getReceiverType(@NotNull JetNamedFunction declaration) {
|
||||||
return declaration.getReceiverTypeRef();
|
return declaration.getReceiverTypeRef();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user