private static void addNamesForType( ArrayList<String> result, JetType jetType, JetNameValidator validator) { JetStandardLibrary standardLibrary = JetStandardLibrary.getInstance(); JetTypeChecker typeChecker = JetTypeChecker.INSTANCE; if (ErrorUtils.containsErrorType(jetType)) return; if (typeChecker.equalTypes(standardLibrary.getBooleanType(), jetType)) { addName(result, "b", validator); } else if (typeChecker.equalTypes(standardLibrary.getIntType(), jetType)) { addName(result, "i", validator); } else if (typeChecker.equalTypes(standardLibrary.getByteType(), jetType)) { addName(result, "byte", validator); } else if (typeChecker.equalTypes(standardLibrary.getLongType(), jetType)) { addName(result, "l", validator); } else if (typeChecker.equalTypes(standardLibrary.getFloatType(), jetType)) { addName(result, "fl", validator); } else if (typeChecker.equalTypes(standardLibrary.getDoubleType(), jetType)) { addName(result, "d", validator); } else if (typeChecker.equalTypes(standardLibrary.getShortType(), jetType)) { addName(result, "sh", validator); } else if (typeChecker.equalTypes(standardLibrary.getCharType(), jetType)) { addName(result, "c", validator); } else if (typeChecker.equalTypes(standardLibrary.getStringType(), jetType)) { addName(result, "s", validator); } else { if (jetType.getArguments().size() == 1) { JetType argument = jetType.getArguments().get(0).getType(); if (typeChecker.equalTypes(standardLibrary.getArrayType(argument), jetType)) { if (typeChecker.equalTypes(standardLibrary.getBooleanType(), argument)) { addName(result, "booleans", validator); } else if (typeChecker.equalTypes(standardLibrary.getIntType(), argument)) { addName(result, "ints", validator); } else if (typeChecker.equalTypes(standardLibrary.getByteType(), argument)) { addName(result, "bytes", validator); } else if (typeChecker.equalTypes(standardLibrary.getLongType(), argument)) { addName(result, "longs", validator); } else if (typeChecker.equalTypes(standardLibrary.getFloatType(), argument)) { addName(result, "floats", validator); } else if (typeChecker.equalTypes(standardLibrary.getDoubleType(), argument)) { addName(result, "doubles", validator); } else if (typeChecker.equalTypes(standardLibrary.getShortType(), argument)) { addName(result, "shorts", validator); } else if (typeChecker.equalTypes(standardLibrary.getCharType(), argument)) { addName(result, "chars", validator); } else if (typeChecker.equalTypes(standardLibrary.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.getName()) + "s", validator); } } } else { addForClassType(result, jetType, validator); } } else { addForClassType(result, jetType, validator); } } }