// Copyright (c) 2022, 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.

import 'dart:test';

main() {
  Class.new;
  Class.fact;
  Class.redirect;
  Class.redirect2;
  ClassImpl.new;
  ClassImpl.patched;
  Alias.new;
  Alias.fact;
  Alias.redirect;
  Alias.redirect2;
  AliasImpl.new;
  AliasImpl.patched;
}
