anchor.diff:          CompileDirectiveMetadata.deserializeHost(
               host, _hostAttributes, _hostListeners, _hostProperties);
           final inputs = coerceStringList(annotationValue, 'inputs');
  +        final unboundInputs = <String, String>{};
           CompileDirectiveMetadata.deserializeInputs(
  -            inputs, _inputs, _inputTypes);
  +            inputs, unboundInputs, _inputTypes);
  +        for (var propertyName in unboundInputs.keys) {
  +          final bindingName = unboundInputs[propertyName];
  +          _prohibitBindingChange(element, propertyName, bindingName, _inputs);
  +          _inputs[propertyName] = bindingName;
  +        }
           final outputs = coerceStringList(annotationValue, 'outputs');
           CompileDirectiveMetadata.deserializeOutputs(outputs, _outputs);
           coerceMap(annotationValue, 'queries').forEach((propertyName, query) {
  
positive.code:   }
    return types;
  }
  
negative.code:     Element element, {
      Map<String, String> immutableBindings,
    }) {
      final value = annotation.computeConstantValue();
      final propertyName = element.displayName;
      final bindingName =
          coerceString(value, 'bindingPropertyName', defaultTo: propertyName);
      _prohibitBindingChange(element.enclosingElement, propertyName, bindingName,
          immutableBindings ?? bindings);
      bindings[propertyName] = bindingName;
    }
  
  