diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java index cde638bb6a7..f08411886d9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetPsiUtil.java @@ -25,6 +25,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.resolve.FqName; import org.jetbrains.jet.lang.resolve.ImportPath; +import org.jetbrains.jet.lang.types.lang.JetStandardClasses; import org.jetbrains.jet.lexer.JetTokens; import java.util.Collection; @@ -307,7 +308,7 @@ public class JetPsiUtil { return false; } - return "Unit".equals(typeReference.getText()); + return JetStandardClasses.UNIT_ALIAS.equals(typeReference.getText()); } public static boolean isSafeCall(@NotNull Call call) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 085b44dca70..d63355109b3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -746,7 +746,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { JetType result; if (operationType == JetTokens.PLUSPLUS || operationType == JetTokens.MINUSMINUS) { if (JetTypeChecker.INSTANCE.isSubtypeOf(returnType, JetStandardClasses.getUnitType())) { - result = ErrorUtils.createErrorType("Unit"); + result = ErrorUtils.createErrorType(JetStandardClasses.UNIT_ALIAS); context.trace.report(INC_DEC_SHOULD_NOT_RETURN_UNIT.on(operationSign)); } else { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardClasses.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardClasses.java index 409fa5a11a9..e8824f799a3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardClasses.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/lang/JetStandardClasses.java @@ -258,12 +258,14 @@ public class JetStandardClasses { @NotNull public static final JetScope STANDARD_CLASSES; + public static final String UNIT_ALIAS = "Unit"; + static { WritableScope writableScope = new WritableScopeImpl(JetScope.EMPTY, STANDARD_CLASSES_NAMESPACE, RedeclarationHandler.DO_NOTHING).setDebugName("JetStandardClasses.STANDARD_CLASSES"); writableScope.changeLockLevel(WritableScope.LockLevel.BOTH); STANDARD_CLASSES = writableScope; - writableScope.addClassifierAlias("Unit", getTuple(0)); + writableScope.addClassifierAlias(UNIT_ALIAS, getTuple(0)); Field[] declaredFields = JetStandardClasses.class.getDeclaredFields(); for (Field field : declaredFields) { diff --git a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java index d18b2c2c768..a92f13a38b2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java @@ -118,7 +118,7 @@ public class DescriptorRenderer implements Renderer { return escape("[NULL]"); } else if (JetStandardClasses.isUnit(type)) { - return escape("Unit" + (type.isNullable() ? "?" : "")); + return escape(JetStandardClasses.UNIT_ALIAS + (type.isNullable() ? "?" : "")); } else if (JetStandardClasses.isTupleType(type)) { return escape(renderTupleType(type, shortNamesOnly)); diff --git a/idea/src/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolver.java b/idea/src/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolver.java index 1c783de0caf..31056babd82 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolver.java +++ b/idea/src/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolver.java @@ -87,7 +87,7 @@ public class StandardLibraryReferenceResolver extends AbstractProjectComponent { assert tuple0 != null; scope = new WritableScopeImpl(scope, jetNamespace, RedeclarationHandler.THROW_EXCEPTION).setDebugName("Builtin classes scope #2"); scope.changeLockLevel(WritableScope.LockLevel.BOTH); - scope.addClassifierAlias("Unit", tuple0); + scope.addClassifierAlias(JetStandardClasses.UNIT_ALIAS, tuple0); jetNamespace.setMemberScope(scope); TopDownAnalyzer.processStandardLibraryNamespace(myProject, context, scope, jetNamespace, getJetFiles("jet")); @@ -136,7 +136,8 @@ public class StandardLibraryReferenceResolver extends AbstractProjectComponent { } String renderedOriginal = DescriptorRenderer.TEXT.render(originalDescriptor); for (DeclarationDescriptor member : memberScope.getAllDescriptors()) { - if (renderedOriginal.equals(DescriptorRenderer.TEXT.render(member).replace(TUPLE0_FQ_NAME.getFqName(), "Unit"))) { + if (renderedOriginal.equals(DescriptorRenderer.TEXT.render(member).replace(TUPLE0_FQ_NAME.getFqName(), + JetStandardClasses.UNIT_ALIAS))) { return member; } } diff --git a/j2k/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java b/j2k/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java index 42f367619e3..17d85b6ac45 100644 --- a/j2k/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java +++ b/j2k/src/org/jetbrains/jet/j2k/visitors/TypeVisitor.java @@ -23,6 +23,7 @@ import org.jetbrains.jet.j2k.Converter; import org.jetbrains.jet.j2k.J2KConverterFlags; import org.jetbrains.jet.j2k.ast.*; import org.jetbrains.jet.j2k.util.AstUtil; +import org.jetbrains.jet.lang.types.lang.JetStandardClasses; import java.util.LinkedList; import java.util.List; @@ -61,7 +62,7 @@ public class TypeVisitor extends PsiTypeVisitor implements J2KVisitor { final IdentifierImpl identifier = new IdentifierImpl(name); if (name.equals("void")) { - myResult = new PrimitiveType(new IdentifierImpl("Unit")); + myResult = new PrimitiveType(new IdentifierImpl(JetStandardClasses.UNIT_ALIAS)); } else if (Node.PRIMITIVE_TYPES.contains(name)) { myResult = new PrimitiveType(new IdentifierImpl(AstUtil.upperFirstCharacter(name)));