# Copyright (c) 2017, 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.

[ $compiler != dart2analyzer ]
switch_case_warn_test: Skip # Analyzer only, see language_analyzer2.status

[ $compiler != fasta ]
nonfunction_type_aliases/*: Skip # github.com/dart-lang/language/issues/115

[ $compiler == none ]
invalid_returns/*: Skip # https://github.com/dart-lang/sdk/issues/34013
void/*: Skip # https://github.com/dart-lang/sdk/issues/34013

[ $compiler == spec_parser ]
double_literals/*: Skip # https://github.com/dart-lang/sdk/issues/34355
invalid_returns/*: Skip # https://github.com/dart-lang/sdk/issues/34015
mixin_declaration/*: Skip # See https://github.com/dart-lang/language/issues/7
void/*: Skip # https://github.com/dart-lang/sdk/issues/34015

[ $mode == debug ]
large_class_declaration_test: Slow

[ $mode == product ]
assertion_test: SkipByDesign # Requires checked mode.
generic_test: SkipByDesign # Requires checked mode.
issue13474_test: SkipByDesign # Requires checked mode.
map_literal4_test: SkipByDesign # Requires checked mode.
named_parameters_type_test/01: SkipByDesign # Requires checked mode.
named_parameters_type_test/02: SkipByDesign # Requires checked mode.
named_parameters_type_test/03: SkipByDesign # Requires checked mode.
positional_parameters_type_test/01: SkipByDesign # Requires checked mode.
positional_parameters_type_test/02: SkipByDesign # Requires checked mode.
regress_29784_test/02: SkipByDesign # Requires checked mode.
stacktrace_demangle_ctors_test: SkipByDesign # Names are not scrubbed.
type_checks_in_factory_method_test: SkipByDesign # Requires checked mode.

[ $compiler != dart2js && $compiler != dartdevc && !$checked ]
function_type/*: Skip # Needs checked mode.

[ $compiler != dartk && $compiler != dartkb && $compiler != dartkp && $mode == debug && $runtime == vm ]
built_in_identifier_type_annotation_test/set: Crash # Not supported by legacy VM front-end.

[ $hot_reload || $hot_reload_rollback ]
issue_22780_test/01: Crash # Issue 29094
vm/optimized_stacktrace_test: Slow
