From 9ef4790976206d26687a39e34cdc9d99ad93ac98 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Thu, 24 Nov 2011 23:13:03 +0400 Subject: [PATCH] allow null from CallableDescriptor.getReturnType --- .../jetbrains/jet/lang/descriptors/CallableDescriptor.java | 4 +++- .../jet/lang/descriptors/FunctionDescriptorImpl.java | 1 - .../jetbrains/jet/lang/descriptors/PropertyDescriptor.java | 1 - .../jet/lang/descriptors/PropertyGetterDescriptor.java | 1 - .../jet/lang/descriptors/VariableDescriptorImpl.java | 1 - .../src/org/jetbrains/jet/resolve/DescriptorRenderer.java | 7 +++++-- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/CallableDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/CallableDescriptor.java index 4e78d2c81f5..752d0da55d3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/CallableDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/CallableDescriptor.java @@ -21,7 +21,9 @@ public interface CallableDescriptor extends DeclarationDescriptor { @NotNull List getTypeParameters(); - @NotNull + /** + * Method may return null for not yet fully initialized object or if error occurred. + */ JetType getReturnType(); @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorImpl.java index ef3ab5aefa0..490b9f889b1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/FunctionDescriptorImpl.java @@ -120,7 +120,6 @@ public class FunctionDescriptorImpl extends DeclarationDescriptorImpl implements } @Override - @NotNull public JetType getReturnType() { return unsubstitutedReturnType; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java index 69555990589..361eb70fbb4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyDescriptor.java @@ -113,7 +113,6 @@ public class PropertyDescriptor extends VariableDescriptorImpl implements Callab return expectedThisObject; } - @NotNull @Override public JetType getReturnType() { return getOutType(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyGetterDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyGetterDescriptor.java index 4181da25779..095254c7f3d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyGetterDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/PropertyGetterDescriptor.java @@ -34,7 +34,6 @@ public class PropertyGetterDescriptor extends PropertyAccessorDescriptor { return Collections.emptyList(); } - @NotNull @Override public JetType getReturnType() { return returnType; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/VariableDescriptorImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/VariableDescriptorImpl.java index 6daefbce285..9ff1027e6c6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/VariableDescriptorImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/VariableDescriptorImpl.java @@ -84,7 +84,6 @@ public abstract class VariableDescriptorImpl extends DeclarationDescriptorImpl i return ReceiverDescriptor.NO_RECEIVER; } - @NotNull @Override public JetType getReturnType() { return getOutType(); diff --git a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java index a378e31d39b..4eeb1635dc3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java +++ b/compiler/frontend/src/org/jetbrains/jet/resolve/DescriptorRenderer.java @@ -73,7 +73,11 @@ public class DescriptorRenderer implements Renderer { } public String renderType(JetType type) { - return escape(type.toString()); + if (type != null) { + return escape(""); + } else { + return escape(type.toString()); + } } protected String escape(String s) { @@ -222,7 +226,6 @@ public class DescriptorRenderer implements Renderer { renderName(descriptor, builder); renderValueParameters(descriptor, builder); - // TODO: getReturnType may be uninitialized and throw IllegalStateException // stepan.koltsov@ 2011-11-21 builder.append(" : ").append(escape(renderType(descriptor.getReturnType()))); return super.visitFunctionDescriptor(descriptor, builder); }