anchor.diff:        if (!_canBeInferredIndependently(initializer, thisLib)) return;
       }
   
  -    var type = getStaticType(initializer);
  -    if (type == _typeProvider.bottomType) return;
  +    var type = initializer.staticType;
  +    if (type == null || type == _typeProvider.bottomType) return;
       element.type = type;
       if (element is PropertyInducingElement) {
         element.getter.returnType = type;
  
positive.code:     } finally {
        overrideManager.exitScope();
      }
      node.accept(elementResolver);
      node.accept(typeAnalyzer);
      return null;
    }
  
  
negative.code:     var declaredType = (node.parent as VariableDeclarationList).type;
      if (declaredType != null) return;
      var element = node.element;
      if (element.type != _typeProvider.dynamicType) return;
  
      // Local variables can be inferred automatically, for top-levels and fields
      // we rule out cases that could depend on the order in which we process
  