Reports redundant constructors declared inside Java records.

Example 1:


  record Point(int x, int y) {
    public Point {} // could be removed
  }
  
  record Point(int x, int y) {
    public Point(int x, int y) { // could be removed
      this.x = x;
      this.y = y;
    }
  }

The quick-fix removes the redundant constructors.

Example 2:


   // could be converted to compact constructor
  record Range(int from, int to) {
    public Range(int from, int to) {
      if (from > to) throw new IllegalArgumentException();
      this.from = from;
      this.to = to;
    }
  }

The quick-fix converts this code into a compact constructor.

This inspection only reports if the language level of the project or module is 16 or higher.

New in 2020.1