anchor.diff:      }
     }
   
  -  DartType? _fieldOrPropertyType(Element element) {
  -    if (element is PropertyAccessorElement && element.isSetter) {
  -      return element.parameters.first.type;
  -    }
  -    if (element is FieldElement) {
  -      return element.type;
  -    }
  -    return null;
  +  /// Attempts to return a valid setter for [element].
  +  ///
  +  /// May return null if no setter corresponds to [element], or the [element]
  +  /// itself is invalid (e.g. a setter without parameters or a body).
  +  PropertyAccessorElement? _setterFor(Element element) {
  +    // Resolves specified generic type parameters.
  +    final setter = _directiveClassElement!.thisType
  +        .lookUpInheritedSetter(element.displayName)!;
  +    if (setter.parameters.isEmpty) {
  +      CompileContext.current.reportAndRecover(
  +        BuildError.forElement(
  +          element,
  +          'Invalid setter, please check build log for syntax errors.',
  +        ),
  +      );
  +      return null;
  +    }
  +    return setter;
     }
   
     List<CompileTokenMetadata> _getSelectors(
  
positive.code:           if (isField) {
              _refuseLateFinalInputs(element as FieldElement);
            }
            // Resolves specified generic type parameters.
            final setter = _directiveClassElement!.thisType
                .lookUpInheritedSetter(element.displayName)!;
            if (setter.parameters.isEmpty) {
              return CompileContext.current.reportAndRecover(
                BuildError.forElement(
                  element,
                  '@Input setter has no parameters.',
                ),
              );
            }
            final propertyType = setter.parameters.first.type;
            final dynamicType = setter.library.typeProvider.dynamicType;
  
negative.code:         }
        } else if (annotationInfo.isContentType) {
          if (isSetter && element.isPublic) {
            final setter = _setterFor(element);
            if (setter == null) {
              return;
            }
            final queryType = setter.parameters.first.type;
            final contentQuery = _getQuery(
              annotationInfo,
              // Avoid emitting the '=' part of the setter.
              element.displayName,
              queryType,
            );
            if (contentQuery.first) {
              _refuseNonNullableSingleChildQueries(element, queryType);
            }
            if (element is FieldElement) {
              _refuseLateQueries(element);
  