Remove PsiParameterWrapper class

This commit is contained in:
Pavel V. Talanov
2013-07-05 20:55:35 +04:00
parent 9a76cd8472
commit 6c02f6aba8
4 changed files with 19 additions and 56 deletions
@@ -17,10 +17,7 @@
package org.jetbrains.jet.lang.resolve.java.resolver; package org.jetbrains.jet.lang.resolve.java.resolver;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import com.intellij.psi.PsiEnumConstant; import com.intellij.psi.*;
import com.intellij.psi.PsiExpression;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiLiteralExpression;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.*;
@@ -32,7 +29,10 @@ import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeFieldSignatureData; import org.jetbrains.jet.lang.resolve.java.kotlinSignature.AlternativeFieldSignatureData;
import org.jetbrains.jet.lang.resolve.java.provider.NamedMembers; import org.jetbrains.jet.lang.resolve.java.provider.NamedMembers;
import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProvider; import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProvider;
import org.jetbrains.jet.lang.resolve.java.wrapper.*; import org.jetbrains.jet.lang.resolve.java.wrapper.PropertyPsiData;
import org.jetbrains.jet.lang.resolve.java.wrapper.PropertyPsiDataElement;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiFieldWrapper;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetType;
@@ -312,7 +312,7 @@ public final class JavaPropertyResolver {
if (setterDescriptor != null) { if (setterDescriptor != null) {
PropertyPsiDataElement setter = data.getSetter(); PropertyPsiDataElement setter = data.getSetter();
assert setter != null; assert setter != null;
List<PsiParameterWrapper> parameters = ((PsiMethodWrapper) setter.getMember()).getParameters(); List<PsiParameter> parameters = ((PsiMethodWrapper) setter.getMember()).getParameters();
assert parameters.size() != 0; assert parameters.size() != 0;
setterDescriptor.initialize(new ValueParameterDescriptorImpl( setterDescriptor.initialize(new ValueParameterDescriptorImpl(
setterDescriptor, setterDescriptor,
@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.resolve.java.resolver;
import com.intellij.psi.PsiAnnotation; import com.intellij.psi.PsiAnnotation;
import com.intellij.psi.PsiEllipsisType; import com.intellij.psi.PsiEllipsisType;
import com.intellij.psi.PsiParameter;
import com.intellij.psi.PsiType; import com.intellij.psi.PsiType;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
@@ -25,7 +26,6 @@ import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl; import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl;
import org.jetbrains.jet.lang.resolve.java.*; import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiParameterWrapper;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeUtils; import org.jetbrains.jet.lang.types.TypeUtils;
@@ -48,16 +48,16 @@ public final class JavaValueParameterResolver {
@NotNull @NotNull
private ValueParameterDescriptor resolveParameterDescriptor( private ValueParameterDescriptor resolveParameterDescriptor(
DeclarationDescriptor containingDeclaration, int i, DeclarationDescriptor containingDeclaration, int i,
PsiParameterWrapper parameter, TypeVariableResolver typeVariableResolver PsiParameter parameter, TypeVariableResolver typeVariableResolver
) { ) {
PsiType psiType = parameter.getPsiParameter().getType(); PsiType psiType = parameter.getType();
// TODO: must be very slow, make it lazy? // TODO: must be very slow, make it lazy?
Name name = Name.identifier(getParameterName(i, parameter)); Name name = Name.identifier(getParameterName(i, parameter));
TypeUsage typeUsage = JavaTypeTransformer TypeUsage typeUsage = JavaTypeTransformer
.adjustTypeUsageWithMutabilityAnnotations(parameter.getPsiParameter(), TypeUsage.MEMBER_SIGNATURE_CONTRAVARIANT); .adjustTypeUsageWithMutabilityAnnotations(parameter, TypeUsage.MEMBER_SIGNATURE_CONTRAVARIANT);
JetType outType = getTypeTransformer().transformToType(psiType, typeUsage, typeVariableResolver); JetType outType = getTypeTransformer().transformToType(psiType, typeUsage, typeVariableResolver);
JetType varargElementType; JetType varargElementType;
@@ -70,7 +70,7 @@ public final class JavaValueParameterResolver {
} }
JetType transformedType; JetType transformedType;
PsiAnnotation notNullAnnotation = findAnnotationWithExternal(parameter.getPsiParameter(), PsiAnnotation notNullAnnotation = findAnnotationWithExternal(parameter,
JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().asString()); JvmAbi.JETBRAINS_NOT_NULL_ANNOTATION.getFqName().asString());
if (notNullAnnotation != null) { if (notNullAnnotation != null) {
transformedType = TypeUtils.makeNullableAsSpecified(outType, false); transformedType = TypeUtils.makeNullableAsSpecified(outType, false);
@@ -100,19 +100,19 @@ public final class JavaValueParameterResolver {
} }
@NotNull @NotNull
private static String getParameterName(int number, @NotNull PsiParameterWrapper parameter) { private static String getParameterName(int number, @NotNull PsiParameter parameter) {
String psiParameterName = parameter.getPsiParameter().getName(); String psiParameterName = parameter.getName();
return psiParameterName != null ? psiParameterName : "p" + number; return psiParameterName != null ? psiParameterName : "p" + number;
} }
public JavaDescriptorResolver.ValueParameterDescriptors resolveParameterDescriptors( public JavaDescriptorResolver.ValueParameterDescriptors resolveParameterDescriptors(
DeclarationDescriptor containingDeclaration, DeclarationDescriptor containingDeclaration,
List<PsiParameterWrapper> parameters, TypeVariableResolver typeVariableResolver List<PsiParameter> parameters, TypeVariableResolver typeVariableResolver
) { ) {
List<ValueParameterDescriptor> result = new ArrayList<ValueParameterDescriptor>(); List<ValueParameterDescriptor> result = new ArrayList<ValueParameterDescriptor>();
int indexDelta = 0; int indexDelta = 0;
for (int i = 0, parametersLength = parameters.size(); i < parametersLength; i++) { for (int i = 0, parametersLength = parameters.size(); i < parametersLength; i++) {
PsiParameterWrapper parameter = parameters.get(i); PsiParameter parameter = parameters.get(i);
ValueParameterDescriptor parameterDescriptor = ValueParameterDescriptor parameterDescriptor =
resolveParameterDescriptor(containingDeclaration, i + indexDelta, parameter, typeVariableResolver); resolveParameterDescriptor(containingDeclaration, i + indexDelta, parameter, typeVariableResolver);
result.add(parameterDescriptor); result.add(parameterDescriptor);
@@ -16,6 +16,7 @@
package org.jetbrains.jet.lang.resolve.java.wrapper; package org.jetbrains.jet.lang.resolve.java.wrapper;
import com.google.common.collect.Lists;
import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiModifier; import com.intellij.psi.PsiModifier;
import com.intellij.psi.PsiParameter; import com.intellij.psi.PsiParameter;
@@ -23,7 +24,6 @@ import com.intellij.psi.PsiType;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class PsiMethodWrapper extends PsiMemberWrapper { public class PsiMethodWrapper extends PsiMemberWrapper {
@@ -32,16 +32,12 @@ public class PsiMethodWrapper extends PsiMemberWrapper {
super(psiMethod); super(psiMethod);
} }
private List<PsiParameterWrapper> parameters; private List<PsiParameter> parameters;
@NotNull @NotNull
public List<PsiParameterWrapper> getParameters() { public List<PsiParameter> getParameters() {
if (parameters == null) { if (parameters == null) {
PsiParameter[] psiParameters = getPsiMethod().getParameterList().getParameters(); parameters = Lists.newArrayList(getPsiMethod().getParameterList().getParameters());
parameters = new ArrayList<PsiParameterWrapper>(psiParameters.length);
for (PsiParameter psiParameter : psiParameters) {
parameters.add(new PsiParameterWrapper(psiParameter));
}
} }
return parameters; return parameters;
} }
@@ -1,33 +0,0 @@
/*
* Copyright 2010-2013 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.lang.resolve.java.wrapper;
import com.intellij.psi.PsiParameter;
import org.jetbrains.annotations.NotNull;
public class PsiParameterWrapper {
private final PsiParameter psiParameter;
public PsiParameterWrapper(@NotNull PsiParameter psiParameter) {
this.psiParameter = psiParameter;
}
@NotNull
public PsiParameter getPsiParameter() {
return psiParameter;
}
}