 -            isInferred &&
 -            syntacticScope.getParent() != null &&
 -            var == syntacticScope.getParent().getSlot(varName);
--
+ 
 -        if (!unflowable && !nonLocalInferredSlot) {
--          type = var.getType();
-+        type = var.getType();
+           type = var.getType();
            if (type == null) {
              type = getNativeType(UNKNOWN_TYPE);
 -          }

         Node left = callee.getFirstChild();
         Node right = callee.getLastChild();
         if (left.getType() == NAME && "goog".equals(left.getString()) &&
@@ -214,6 +209,7 @@ class ClosureReverseAbstractInterpreter
           if (restricter != null) {
             return restrictParameter(param, paramType, blindScope, restricter,
                 outcome);

         }
       }
diff --git a/src/com/google/javascript/jscomp/TypeInference.java b/src/com/google/javascript/jscomp/TypeInference.java
index 749eb6d3..1b3755d2 100644
--- a/src/com/google/javascript/jscomp/TypeInference.java
+++ b/src/com/google/javascript/jscomp/TypeInference.java
@@ -629,29 +629,21 @@ class TypeInference
       return scope;
     } else {
       StaticSlot<JSType> var = scope.getSlot(varName);
