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

# Sections in this file should contain "$runtime == flutter".

# flutter uses --error_on_bad_type, --error_on_bad_override
# and --await_is_keyword so # the following tests fail with
# a Compilation Error
[ $runtime == flutter ]
async_await_test: CompileTimeError
async_await_syntax_test/a05c: CompileTimeError
async_await_syntax_test/a05e: CompileTimeError
async_await_syntax_test/d08c: CompileTimeError
bad_override_test/06: CompileTimeError
call_constructor_on_unresolvable_class_test/01: CompileTimeError
call_constructor_on_unresolvable_class_test/03: CompileTimeError
call_constructor_on_unresolvable_class_test/02: CompileTimeError
call_constructor_on_unresolvable_class_test/07: CompileTimeError
class_keyword_test/02: CompileTimeError
class_override_test/00: CompileTimeError

# The VM doesn't enforce that potentially const expressions are actually
# const expressions when the constructor is called with `const`.
[ $runtime == flutter && $compiler == none && $checked ]
assert_initializer_test/4*: MissingCompileTimeError # Issue 392.
