 -            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);
 -          }

diff --git a/src/com/google/javascript/jscomp/ClosureReverseAbstractInterpreter.java b/src/com/google/javascript/jscomp/ClosureReverseAbstractInterpreter.java
index 7bfbae52..3d8aadb8 100644
--- a/src/com/google/javascript/jscomp/ClosureReverseAbstractInterpreter.java
+++ b/src/com/google/javascript/jscomp/ClosureReverseAbstractInterpreter.java
@@ -174,9 +174,6 @@ class ClosureReverseAbstractInterpreter
       })
       .put("isArray", new Function<TypeRestriction, JSType>() {
         public JSType apply(TypeRestriction p) {
-          if (p.type == null) {
-            return p.outcome ? getNativeType(ARRAY_TYPE) : null;
-          }
 
           Visitor<JSType> visitor = p.outcome ? restrictToArrayVisitor :
               restrictToNotArrayVisitor;
@@ -185,9 +182,6 @@ class ClosureReverseAbstractInterpreter
       })
       .put("isObject", new Function<TypeRestriction, JSType>() {
         public JSType apply(TypeRestriction p) {
-          if (p.type == null) {
-            return p.outcome ? getNativeType(OBJECT_TYPE) : null;
-          }
 
           Visitor<JSType> visitor = p.outcome ? restrictToObjectVisitor :
               restrictToNotObjectVisitor;
@@ -205,6 +199,7 @@ class ClosureReverseAbstractInterpreter
       Node param = condition.getLastChild();
       if (callee.getType() == GETPROP && param.isQualifiedName()) {
         JSType paramType =  getTypeIfRefinable(param, blindScope);

         }
       }
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);
