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:   factory BoundValueConverter.forView(
      CompileView view,
      o.Expression implicitReceiver,
    ) =>
        _ViewBoundValueConverter(view, implicitReceiver);
  
    /// Converts a bound [value] to an expression.
    ///
    /// The [sourceSpan] of [value] is used for reporting errors that may occur
    /// during expression conversion.
    ///
    /// The [propertyType] is the type of the property to which [value] is bound.
    o.Expression convertToExpression(
      BoundValue value,
      SourceSpan sourceSpan,
      o.OutputType propertyType,
    );
  
    /// Returns whether [value] can change during its lifetime.
    bool isImmutable(BoundValue value) {
      if (value is BoundExpression) {
        return analyzer.isImmutable(value.expression, _analyzedClass);
      } else if (value is BoundI18nMessage) {
        return true;
      }
  
negative.code: 
  /// Converts values bound by a directive change detector.
  class _DirectiveBoundValueConverter extends BoundValueConverter {
    _DirectiveBoundValueConverter(
      CompileDirectiveMetadata metadata,
      o.Expression implicitReceiver,
      NameResolver nameResolver,
    ) : super(metadata, implicitReceiver, nameResolver);
  
    @override
    o.Expression _createI18nMessage(I18nMessage message) {
      throw UnsupportedError(
          'Cannot create internationalized message expression without a view');
    }
  }
  
  // Converts values bound in a view.
  class _ViewBoundValueConverter extends BoundValueConverter {
    final CompileView _view;
  
    _ViewBoundValueConverter(this._view, o.Expression implicitReceiver)
        : super(_view.component, implicitReceiver, _view.nameResolver);
  
    @override
    o.Expression _createI18nMessage(I18nMessage message) =>
        _view.createI18nMessage(message);
  }
  