public PreferDefaultTypeWeigher( ExpectedTypeInfo[] expectedTypes, CompletionParameters parameters) { super("defaultType"); myExpectedTypes = expectedTypes == null ? null : ContainerUtil.map2Array( expectedTypes, ExpectedTypeInfo.class, new Function<ExpectedTypeInfo, ExpectedTypeInfo>() { @Override public ExpectedTypeInfo fun(ExpectedTypeInfo info) { PsiType type = removeClassWildcard(info.getType()); PsiType defaultType = removeClassWildcard(info.getDefaultType()); if (type == info.getType() && defaultType == info.getDefaultType()) { return info; } return new ExpectedTypeInfoImpl( type, info.getKind(), defaultType, info.getTailType(), null, ExpectedTypeInfoImpl.NULL); } }); myParameters = parameters; final Pair<PsiClass, Integer> pair = TypeArgumentCompletionProvider.getTypeParameterInfo(parameters.getPosition()); myTypeParameter = pair == null ? null : pair.first.getTypeParameters()[pair.second.intValue()]; myLocation = new CompletionLocation(myParameters); }
public PreferDefaultTypeWeigher( ExpectedTypeInfo[] expectedTypes, CompletionParameters parameters) { super("defaultType"); myExpectedTypes = expectedTypes; myParameters = parameters; final Pair<PsiClass, Integer> pair = TypeArgumentCompletionProvider.getTypeParameterInfo(parameters.getPosition()); myTypeParameter = pair == null ? null : pair.first.getTypeParameters()[pair.second.intValue()]; myLocation = new CompletionLocation(myParameters); }