diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java
index 4839ac3..fed54e2 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/CheckFilterExpressionTypeRule.java
@@ -61,7 +61,10 @@
         }
         SelectOperator select = (SelectOperator) op;
         ILogicalExpression condition = select.getCondition().getValue();
-        IVariableTypeEnvironment env = select.computeOutputTypeEnvironment(context);
+
+        // Get the output type environment
+        IVariableTypeEnvironment env = context.getOutputTypeEnvironment(select);
+
         IAType condType = (IAType) env.getType(condition);
         if (condType.getTypeTag() != ATypeTag.BOOLEAN && condType.getTypeTag() != ATypeTag.ANY
                 && !isPossibleBoolean(condType)) {
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java
index f1f1be3..e40975b 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/impl/TypeComputeUtils.java
@@ -84,7 +84,7 @@
             inputTypes[index++] = (IAType) env.getType(arg);
         }
 
-        // Checks input types and computes result types.
+        // Checks input types.
         IAType[] knownInputTypes = TypeComputeUtils.getActualType(inputTypes);
         boolean[] unknownable = TypeComputeUtils.isUnknownableType(inputTypes);
         for (int argIndex = 0; argIndex < knownInputTypes.length; ++argIndex) {
@@ -97,7 +97,7 @@
         }
 
         // Computes the result type.
-        byte category = TypeComputeUtils.resolveCateogry(inputTypes);
+        byte category = TypeComputeUtils.resolveCategory(inputTypes);
         if (propagateNullAndMissing) {
             if (category == MISSING) {
                 return BuiltinType.AMISSING;
@@ -126,7 +126,7 @@
         }
     }
 
-    private static byte resolveCateogry(IAType... inputTypes) {
+    private static byte resolveCategory(IAType... inputTypes) {
         byte category = CERTAIN;
         boolean meetNull = false;
         for (IAType inputType : inputTypes) {
diff --git a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java
index 8d54a67..a17bbf7 100644
--- a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java
+++ b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/InferTypesRule.java
@@ -25,6 +25,9 @@
 import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 
+/**
+ * This rule computes and sets the output type environment for each operator in the plan
+ */
 public class InferTypesRule implements IAlgebraicRewriteRule {
 
     @Override
