anchor.diff:      offset = 0;
       length = 0;
     }
  +  engine.CompilationUnitElement unitElement = _getUnitElement(element);
     engine.SourceRange range = new engine.SourceRange(offset, length);
  -  return _locationForArgs(context, source, range);
  +  return _locationForArgs(unitElement, range);
   }
   
   /**
    * Create a Location based on an [engine.SearchMatch].
    */
   Location newLocation_fromMatch(engine.SearchMatch match) {
  -  engine.Element enclosingElement = match.element;
  -  return _locationForArgs(
  -      enclosingElement.context, enclosingElement.source, match.sourceRange);
  +  engine.CompilationUnitElement unitElement = _getUnitElement(match.element);
  +  return _locationForArgs(unitElement, match.sourceRange);
   }
   
   /**
  
positive.code:  * Create a Location based on an [engine.Element].
   */
  Location newLocation_fromElement(engine.Element element) {
    engine.AnalysisContext context = element.context;
    engine.Source source = element.source;
    if (context == null || source == null) {
      return null;
    }
    int offset = element.nameOffset;
  
negative.code:  */
  Location newLocation_fromUnit(
      engine.CompilationUnit unit, engine.SourceRange range) {
    return _locationForArgs(unit.element, range);
  }
  
  /**
  