# 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.

# The VM and dart2js do not implement the Dart 2.0 static type errors yet.
# Analyzer does, but only when "--strong" is used.
[ $runtime == vm || $compiler == dart2js || $runtime == dart_precompiled || ($compiler == dart2analyzer && ! $strong) ]
abstract_beats_arguments_test: MissingCompileTimeError
abstract_exact_selector_test/01: MissingCompileTimeError
abstract_factory_constructor_test/00: MissingCompileTimeError
abstract_getter_test/01: MissingCompileTimeError
abstract_syntax_test/00: MissingCompileTimeError

[ $compiler == dart2js ]
accessor_conflict_export2_test: Crash # Issue 25626
accessor_conflict_export_test: Crash # Issue 25626

[ $compiler == dart2js && $runtime != none ]
accessor_conflict_import2_test: RuntimeError # Issue 25626
accessor_conflict_import_prefixed2_test: RuntimeError # Issue 25626
accessor_conflict_import_prefixed_test: RuntimeError # Issue 25626
accessor_conflict_import_test: RuntimeError # Issue 25626

[ $strong && ($compiler == dartdevc || $compiler == dart2analyzer) ]
accessor_conflict_export2_test: CompileTimeError # Issue 25626
accessor_conflict_export_test: CompileTimeError # Issue 25626
accessor_conflict_import2_test: CompileTimeError # Issue 25626
accessor_conflict_import_prefixed2_test: CompileTimeError # Issue 25626
accessor_conflict_import_prefixed_test: CompileTimeError # Issue 25626
accessor_conflict_import_test: CompileTimeError # Issue 25626

[ ! $strong && $compiler == dart2analyzer ]
accessor_conflict_export2_test: StaticWarning # Issue 25626
accessor_conflict_export_test: StaticWarning # Issue 25626
accessor_conflict_import2_test: StaticWarning # Issue 25626
accessor_conflict_import_prefixed2_test: StaticWarning # Issue 25626
accessor_conflict_import_prefixed_test: StaticWarning # Issue 25626
accessor_conflict_import_test: StaticWarning # Issue 25626

[ $compiler == dart2analyzer && ! $strong ]
generic_methods_generic_function_result_test/01: MissingCompileTimeError # Issue #30207

[ $compiler == dart2analyzer && $strong ]
generic_methods_generic_function_result_test/none: CompileTimeError # Issue #30207

[ $compiler == dart2js || $compiler == dartk || $compiler == dartdevc ]
generic_methods_generic_function_result_test/none: CompileTimeError # Issue #30208
