Generate not-null assertions only for descriptors coming from Java

Introduce BindingContext.IS_DECLARED_IN_JAVA, store that info in
JavaDescriptorResolver
This commit is contained in:
Alexander Udalov
2012-10-02 22:44:57 +04:00
parent 988af8208c
commit bf779b4ca5
7 changed files with 89 additions and 5 deletions
@@ -30,10 +30,12 @@ import org.jetbrains.jet.codegen.binding.CalculatedClosure;
import org.jetbrains.jet.codegen.state.GenerationState;
import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.calls.ResolvedCall;
import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
import org.jetbrains.jet.lang.resolve.java.JvmPrimitiveType;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import org.jetbrains.jet.lexer.JetTokens;
@@ -447,6 +449,8 @@ public class AsmUtil {
) {
if (!state.isGenerateNotNullAssertions()) return;
if (!Boolean.TRUE.equals(state.getBindingContext().get(BindingContext.IS_DECLARED_IN_JAVA, descriptor))) return;
JetType type = descriptor.getReturnType();
if (type == null || type.isNullable()) return;