From e4382ff95b7f1766479692db3bddb57ca4090ed1 Mon Sep 17 00:00:00 2001 From: Sergey Mashkov Date: Tue, 26 Nov 2013 18:56:43 +0400 Subject: [PATCH] Minor: better assertions and warnings removed --- .../jet/lang/resolve/ControlFlowAnalyzer.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ControlFlowAnalyzer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ControlFlowAnalyzer.java index 8eb9f2214aa..22e8444bd27 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ControlFlowAnalyzer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/ControlFlowAnalyzer.java @@ -59,6 +59,8 @@ public class ControlFlowAnalyzer { JetType expectedReturnType = !function.hasBlockBody() && !function.hasDeclaredReturnType() ? NO_EXPECTED_TYPE : functionDescriptor.getReturnType(); + assert expectedReturnType != null + : "functionDescriptor is not yet fully initialized or broken so return type is null " + functionDescriptor; checkFunction(function, expectedReturnType); } for (Map.Entry entry : bodiesResolveContext.getProperties().entrySet()) { @@ -85,12 +87,14 @@ public class ControlFlowAnalyzer { PropertyAccessorDescriptor accessorDescriptor = accessor.isGetter() ? propertyDescriptor.getGetter() : propertyDescriptor.getSetter(); - assert accessorDescriptor != null; - checkFunction(accessor, accessorDescriptor.getReturnType()); + assert accessorDescriptor != null : "no property accessor descriptor " + accessor.getText(); + JetType returnType = accessorDescriptor.getReturnType(); + assert returnType != null : "property accessor has no return type " + accessorDescriptor; + checkFunction(accessor, returnType); } } - private void checkFunction(JetDeclarationWithBody function, @NotNull JetType expectedReturnType) { + private void checkFunction(@NotNull JetDeclarationWithBody function, @NotNull JetType expectedReturnType) { JetExpression bodyExpression = function.getBodyExpression(); if (bodyExpression == null) return; JetFlowInformationProvider flowInformationProvider = new JetFlowInformationProvider(function, trace);