// Copyright (c) 2021, the Dart 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.

part of 'constructor_tear_off_uri.dart';

test() {
  Class Function(int) f = Class.new;
}

// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class
// Long comment to increase file offset of Class

class Class {}
