`@BeanMapping(ignoreByDefault = true)` does not work for constructor properties

Expected behavior

Utilizing the @BeanMapping(ignoreByDefault = true) on a mapping where the target is a Java 14 Record, all fields should be ignored except the ones that are explicitly defined through @Mapping.

Actual behavior

@BeanMapping(ignoreByDefault = true) does nothing, all fields are still mapped.

Steps to reproduce the problem

Add a very basic setup to mimic the carToCarDto example, making the CarDto a Java 14 record:

public record CarDto(int id, String make) {}
public class Car {
    private int id;
    private String make;
    // getters & setters...
}

And with a mapper like so:

@Mapper
public interface CarMapper {
    @BeanMapping(ignoreByDefault = true)
    @Mapping(source = "id", target = "id")
    CarDto carToCarDto(Car car);
}

The generated mapper does not ignore the make field as seen:

@Override
public CarDto carToCarDto(Car car) {
    if ( car == null ) {
        return null;
    }

    int id = 0;
    String make = null;

    id = car.getId();
    make = car.getMake();

    CarDto carDto = new CarDto( id, make );

    return carDto;
}

A workaround for now is to explicitly ignore all the fields you do not want mapped, which behaves correctly (eg. @Mapping(target = "make", ignore = true). However, with a large amount of fields this becomes very difficult to manage.

MapStruct Version

Mapstruct 1.5.3