anchor.diff:    /// Returns whether [value] is a string.
     bool isString(BoundValue value) {
       if (value is BoundExpression) {
  -      return analyzer.isString(value.expression, _analyzedClass);
  +      return analyzer.isString(value.expression, analyzedClass);
       } else if (value is BoundI18nMessage) {
         return true;
       }
  
positive.code:     CompileDirectiveMetadata metadata,
      o.Expression implicitReceiver,
      NameResolver nameResolver,
    ) =>
        _DirectiveBoundValueConverter(metadata, implicitReceiver, nameResolver);
  
    /// Creates a bound value converter for expressions in a [view].
    ///
  
negative.code: 
  /// An abstract utility for converting bound values to output expressions.
  abstract class BoundValueConverter {
    final CompileDirectiveMetadata _metadata;
    final o.Expression _implicitReceiver;
    final NameResolver _nameResolver;
  
    BoundValueConverter(
      this._metadata,
      this._implicitReceiver,
      this._nameResolver,
    );
  
    /// Creates a bound value converter for a directive change detector.
    ///
  