Simplified NameSuggester; added test
This commit is contained in:
@@ -139,56 +139,46 @@ public class JetNameSuggester {
|
|||||||
else if (typeChecker.equalTypes(builtIns.getStringType(), jetType)) {
|
else if (typeChecker.equalTypes(builtIns.getStringType(), jetType)) {
|
||||||
addName(result, "s", validator);
|
addName(result, "s", validator);
|
||||||
}
|
}
|
||||||
else {
|
else if (KotlinBuiltIns.isArray(jetType) || KotlinBuiltIns.isPrimitiveArray(jetType)) {
|
||||||
if (jetType.getArguments().size() == 1) {
|
JetType elementType = KotlinBuiltIns.getInstance().getArrayElementType(jetType);
|
||||||
JetType argument = jetType.getArguments().get(0).getType();
|
if (typeChecker.equalTypes(builtIns.getBooleanType(), elementType)) {
|
||||||
if ((KotlinBuiltIns.isArray(jetType) || KotlinBuiltIns.isPrimitiveArray(jetType)) &&
|
addName(result, "booleans", validator);
|
||||||
typeChecker.equalTypes(argument, builtIns.getArrayElementType(jetType))) {
|
}
|
||||||
if (typeChecker.equalTypes(builtIns.getBooleanType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getIntType(), elementType)) {
|
||||||
addName(result, "booleans", validator);
|
addName(result, "ints", validator);
|
||||||
}
|
}
|
||||||
else if (typeChecker.equalTypes(builtIns.getIntType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getByteType(), elementType)) {
|
||||||
addName(result, "ints", validator);
|
addName(result, "bytes", validator);
|
||||||
}
|
}
|
||||||
else if (typeChecker.equalTypes(builtIns.getByteType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getLongType(), elementType)) {
|
||||||
addName(result, "bytes", validator);
|
addName(result, "longs", validator);
|
||||||
}
|
}
|
||||||
else if (typeChecker.equalTypes(builtIns.getLongType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getFloatType(), elementType)) {
|
||||||
addName(result, "longs", validator);
|
addName(result, "floats", validator);
|
||||||
}
|
}
|
||||||
else if (typeChecker.equalTypes(builtIns.getFloatType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getDoubleType(), elementType)) {
|
||||||
addName(result, "floats", validator);
|
addName(result, "doubles", validator);
|
||||||
}
|
}
|
||||||
else if (typeChecker.equalTypes(builtIns.getDoubleType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getShortType(), elementType)) {
|
||||||
addName(result, "doubles", validator);
|
addName(result, "shorts", validator);
|
||||||
}
|
}
|
||||||
else if (typeChecker.equalTypes(builtIns.getShortType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getCharType(), elementType)) {
|
||||||
addName(result, "shorts", validator);
|
addName(result, "chars", validator);
|
||||||
}
|
}
|
||||||
else if (typeChecker.equalTypes(builtIns.getCharType(), argument)) {
|
else if (typeChecker.equalTypes(builtIns.getStringType(), elementType)) {
|
||||||
addName(result, "chars", validator);
|
addName(result, "strings", validator);
|
||||||
}
|
|
||||||
else if (typeChecker.equalTypes(builtIns.getStringType(), argument)) {
|
|
||||||
addName(result, "strings", validator);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ClassDescriptor classDescriptor = TypeUtils.getClassDescriptor(argument);
|
|
||||||
if (classDescriptor != null) {
|
|
||||||
Name className = classDescriptor.getName();
|
|
||||||
addName(result, "arrayOf" + StringUtil.capitalize(className.asString()) + "s", validator);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
addForClassType(result, jetType, validator);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
addForClassType(result, jetType, validator);
|
ClassDescriptor classDescriptor = TypeUtils.getClassDescriptor(elementType);
|
||||||
|
if (classDescriptor != null) {
|
||||||
|
Name className = classDescriptor.getName();
|
||||||
|
addName(result, "arrayOf" + StringUtil.capitalize(className.asString()) + "s", validator);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
addForClassType(result, jetType, validator);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addForClassType(ArrayList<String> result, JetType jetType, JetNameValidator validator) {
|
private static void addForClassType(ArrayList<String> result, JetType jetType, JetNameValidator validator) {
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
class A() {}
|
||||||
|
|
||||||
|
fun a() {
|
||||||
|
<selection>IntArray(10)</selection>
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
array
|
||||||
|
intArray
|
||||||
|
ints
|
||||||
|
*/
|
||||||
+4
@@ -47,6 +47,10 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase {
|
|||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testNamePrimitiveArray() {
|
||||||
|
doTest();
|
||||||
|
}
|
||||||
|
|
||||||
public void testNameCallExpression() {
|
public void testNameCallExpression() {
|
||||||
doTest();
|
doTest();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user