EA-50446 (code fixed; test coverage increased)

This commit is contained in:
Roman Shevchenko
2013-10-02 13:27:26 +02:00
parent 227127730d
commit cfdc1c3b74
2 changed files with 9 additions and 8 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
* Copyright 2000-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.
@@ -32,9 +32,7 @@ import org.jetbrains.annotations.NotNull;
* @author peter
*/
public class CanonicalPsiTypeConverterImpl extends CanonicalPsiTypeConverter implements CustomReferenceConverter<PsiType> {
@NonNls static final String[] PRIMITIVES = new String[]{"boolean", "byte",
"char", "double", "float", "int", "long", "short"};
@NonNls static final String[] PRIMITIVES = {"boolean", "byte", "char", "double", "float", "int", "long", "short"};
@NonNls private static final String ARRAY_PREFIX = "[L";
private static final JavaClassReferenceProvider CLASS_REFERENCE_PROVIDER = new JavaClassReferenceProvider();
@@ -71,9 +69,8 @@ public class CanonicalPsiTypeConverterImpl extends CanonicalPsiTypeConverter imp
}
}
return new JavaClassReferenceSet(trimmed, element, offset, false, CLASS_REFERENCE_PROVIDER) {
protected JavaClassReference createReference(final int referenceIndex, final String subreferenceText, final TextRange textRange,
final boolean staticImport) {
return new JavaClassReference(this, textRange, referenceIndex, subreferenceText, staticImport) {
protected JavaClassReference createReference(int refIndex, String subRefText, TextRange textRange, boolean staticImport) {
return new JavaClassReference(this, textRange, refIndex, subRefText, staticImport) {
public boolean isSoft() {
return true;
}
@@ -103,7 +100,7 @@ public class CanonicalPsiTypeConverterImpl extends CanonicalPsiTypeConverter imp
public Object[] getVariants() {
final Object[] variants = super.getVariants();
if (myIndex == 0) {
return ArrayUtil.mergeArrays(variants, PRIMITIVES);
return ArrayUtil.mergeArrays(variants, PRIMITIVES, ArrayUtil.OBJECT_ARRAY_FACTORY);
}
return variants;
}
@@ -75,6 +75,7 @@ public abstract class DomHardCoreTestCase extends CodeInsightTestCase {
final XmlTagValue tagValue = value.getXmlTag().getValue();
final TextRange textRange = tagValue.getTextRange();
final String s = value.getStringValue();
assertNotNull(s);
final int i = tagValue.getText().indexOf(s);
return assertReference(value, resolveTo, textRange.getStartOffset() + i + s.length());
}
@@ -83,18 +84,21 @@ public abstract class DomHardCoreTestCase extends CodeInsightTestCase {
final XmlTag tag = value.getXmlTag();
final PsiReference reference = tag.getContainingFile().findReferenceAt(offset);
assertNotNull(reference);
reference.getVariants();
assertEquals(resolveTo, reference.resolve());
return reference;
}
protected PsiReference getReference(final GenericAttributeValue value) {
final XmlAttributeValue attributeValue = value.getXmlAttributeValue();
assertNotNull(attributeValue);
final PsiReference reference = attributeValue.getContainingFile().findReferenceAt(attributeValue.getTextRange().getStartOffset() + 1);
assertNotNull(reference);
assertEquals(attributeValue, reference.resolve());
return reference;
}
@SuppressWarnings("deprecation")
protected void assertVariants(PsiReference reference, String... variants) {
Object[] refVariants = reference.getVariants();
assertNotNull(refVariants);