Add null-checking for non-nullable @Provides methods that are inlined or proxied.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=163489062
diff --git a/java/dagger/internal/codegen/CodeBlocks.java b/java/dagger/internal/codegen/CodeBlocks.java
index c8f0640..8b6b4a0 100644
--- a/java/dagger/internal/codegen/CodeBlocks.java
+++ b/java/dagger/internal/codegen/CodeBlocks.java
@@ -20,14 +20,17 @@
 import static java.util.stream.StreamSupport.stream;
 
 import com.google.auto.common.MoreElements;
+import com.google.auto.common.MoreTypes;
 import com.google.errorprone.annotations.CanIgnoreReturnValue;
 import com.squareup.javapoet.ClassName;
 import com.squareup.javapoet.CodeBlock;
 import com.squareup.javapoet.CodeBlock.Builder;
+import com.squareup.javapoet.MethodSpec;
 import com.squareup.javapoet.TypeName;
 import java.util.stream.Collector;
 import javax.lang.model.element.ExecutableElement;
 import javax.lang.model.element.VariableElement;
+import javax.lang.model.type.DeclaredType;
 
 final class CodeBlocks {
   /**
@@ -76,6 +79,11 @@
     return stream(codeBlocks.spliterator(), false).collect(toParametersCodeBlock());
   }
 
+  /** Adds an annotation to a method. */
+  static void addAnnotation(MethodSpec.Builder method, DeclaredType nullableType) {
+    method.addAnnotation(ClassName.get(MoreTypes.asTypeElement(nullableType)));
+  }
+
   private static final class CodeBlockJoiner {
     private final String delimiter;
     private final CodeBlock.Builder builder;