// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package records;

import records.differentpackage.PrivateConstClass;

public class RecordWithConstClass {

  record MyRecordWithConstClass(Class<?> theClass) { }

  public static void main(String[] args) {
    MyRecordWithConstClass inst =
        new MyRecordWithConstClass(PrivateConstClass.getPrivateConstClass());
    System.out.println(inst);
  }
}
