// Copyright (c) 2014, 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 'package:test_reflective_loader/test_reflective_loader.dart';

import 'class_hierarchy_test.dart' as class_hierarchy;
import 'element_test.dart' as element;
import 'factor_type_test.dart' as factor_type;
import 'flatten_type_test.dart' as flatten_type;
import 'function_type_test.dart' as function_type;
import 'generic_inferrer_test.dart' as generic_inferrer;
import 'inheritance_manager3_test.dart' as inheritance_manager3;
import 'least_upper_bound_helper_test.dart' as least_upper_bound_helper;
import 'normalize_type_test.dart' as normalize_type;
import 'nullability_eliminator_test.dart' as nullability_eliminator;
import 'nullable_test.dart' as nullable;
import 'runtime_type_equality_test.dart' as runtime_type_equality;
import 'subtype_test.dart' as subtype;
import 'top_merge_test.dart' as top_merge;
import 'type_algebra_test.dart' as type_algebra;
import 'type_parameter_element_test.dart' as type_parameter_element;
import 'type_visitor_test.dart' as type_visitor;
import 'upper_lower_bound_test.dart' as upper_bound;

/// Utility for manually running all tests.
main() {
  defineReflectiveSuite(() {
    class_hierarchy.main();
    element.main();
    factor_type.main();
    flatten_type.main();
    function_type.main();
    generic_inferrer.main();
    inheritance_manager3.main();
    least_upper_bound_helper.main();
    normalize_type.main();
    nullability_eliminator.main();
    nullable.main();
    runtime_type_equality.main();
    subtype.main();
    top_merge.main();
    type_algebra.main();
    type_parameter_element.main();
    type_visitor.main();
    upper_bound.main();
  }, name: 'element');
}
