Fix ProcesKotlinStdLib tests by adjusting index and null-check

Change-Id: I7c3f26c17c3076c4855061b906bc23ffcc1bc3c0
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizerUtils.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizerUtils.java
index 67fb7da..3b04e91 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizerUtils.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizerUtils.java
@@ -111,8 +111,13 @@
                 && originalTypeInfo.getArguments().get(0).isStarProjection();
             return kmType;
           } else {
+            // TODO(b/152886451): Variance is only NULL when star projection. If that is the case
+            //  we should just apply starProjection.
             return kmType.visitArgument(
-                flagsOf(), projectionInfo == null ? KmVariance.INVARIANT : projectionInfo.variance);
+                flagsOf(),
+                projectionInfo == null || projectionInfo.variance == null
+                    ? KmVariance.INVARIANT
+                    : projectionInfo.variance);
           }
         },
         allTypeParameters,
@@ -145,9 +150,13 @@
               assert projectionInfo == null || projectionInfo.isStarProjection();
               return kmType;
             } else {
+              // TODO(b/152886451): Variance is only NULL when star projection. If that is the case
+              //  we should just apply starProjection.
               return kmType.visitArgument(
                   flagsOf(),
-                  projectionInfo == null ? KmVariance.INVARIANT : projectionInfo.variance);
+                  projectionInfo == null || projectionInfo.variance == null
+                      ? KmVariance.INVARIANT
+                      : projectionInfo.variance);
             }
           },
           allTypeParameters,
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java
index 9826f3a..e9bc069 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeInfo.java
@@ -83,7 +83,7 @@
 
   public KotlinTypeProjectionInfo getArgumentOrNull(int index) {
     List<KotlinTypeProjectionInfo> arguments = getArguments();
-    return arguments.size() >= index ? getArguments().get(index) : null;
+    return arguments.size() > index ? getArguments().get(index) : null;
   }
 
   public KotlinTypeInfo toRenamed(KotlinMetadataSynthesizer synthesizer) {
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java
index 0bee8cc..a16c78e 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinTypeProjectionInfo.java
@@ -32,6 +32,7 @@
 
   public void visit(KmTypeVisitor visitor) {
     KmTypeVisitor kmTypeVisitor = visitor.visitArgument(flagsOf(), variance);
+    // TODO(b/152886451): Check if this check should be before visitor.visitArgument(...).
     if (isStarProjection()) {
       kmTypeVisitor.visitStarProjection();
     } else {