anchor.diff:        // Even for directives, we want change detection set to the default.
         changeDetection:
             _changeDetection(element, annotationValue, 'changeDetection'),
  -      inputs: new Map.from(_fieldInputs)..addAll(_setterInputs),
  +      inputs: _inputs,
         inputTypes: _inputTypes,
         outputs: _outputs,
         hostListeners: _hostListeners,
  
positive.code:     extends RecursiveElementVisitor<CompileDirectiveMetadata> {
    final _fieldInputs = <String, String>{};
    final _setterInputs = <String, String>{};
    final _inputTypes = <String, String>{};
    final _outputs = <String, String>{};
    final _hostAttributes = <String, String>{};
  
negative.code:     _hostListeners[eventName] = '$methodName(${methodArgs.join(', ')})';
    }
  
    /// Adds a property binding for [element] to [bindings].
    ///
    /// The property binding maps [element]'s display name to a binding name. By
    /// default, [element]'s name is used as the binding name. However, if
    /// [annotation] has a `bindingPropertyName` field, its value is used instead.
    ///
    /// Property bindings are immutable by default, to prevent derived classes
    /// from overriding inherited binding names. The optional [immutableBindings]
    /// may be provided to restrict a different set of property bindings than
    /// [bindings].
    void _addPropertyBindingTo(
      Map<String, String> bindings,
      ElementAnnotation annotation,
      Element element, {
      Map<String, String> immutableBindings,
    }) {
      immutableBindings ??= bindings;
  
      final value = annotation.computeConstantValue();
      final propertyName = element.displayName;
      final bindingName =
          coerceString(value, 'bindingPropertyName', defaultTo: propertyName);
  
      if (immutableBindings.containsKey(propertyName) &&
          immutableBindings[propertyName] != bindingName) {
        log.severe("'${element.enclosingElement.name}' overwrites the binding "
            "name of property '$propertyName' from "
            "'${immutableBindings[propertyName]}' to '$bindingName'.");
      }
  
      bindings[propertyName] = bindingName;
  