Replaced JetFunction with JetNamedFunction.

Replaced JetDeclaration with JetNamedDeclaration.
This commit is contained in:
Evgeny Gerashchenko
2012-12-29 16:22:43 +04:00
parent 9684f05e7c
commit 4cea564c2f
@@ -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();
} }
} }