# Copyright (c) 2013, 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 ]
# not clear: g([var foo = foo + 10]) is parameter 'foo' in the scope of its own initialzer?
Language/06_Functions/2_Formal_Parameters_A02_t02: fail

# not clear: null..[1](1)[2](2).foo(3, bar: 4)=5 - it seems that verything before =5 it not assignable
Language/07_Classes/6_Constructors/1_Generative_Constructors_A04_t15: fail

# invalid argument for constant constructor
Language/07_Classes/6_Constructors/3_Constant_Constructors_A05_t02: fail

# TBF: _f is private, so does not collide
Language/07_Classes/1_Instance_Methods_A05_t08: fail

# TBD: should we check that argument for dynamic parameter of constant constructor is not compatible with operation that is performed with it?
Language/12_Expressions/01_Constants_A16_t03: fail

# TBD: should we report _error_ when constant creation uses arguments with types incompatible with parameters?
Language/12_Expressions/12_Instance_Creation/2_Const_A09_t02: fail
Language/12_Expressions/12_Instance_Creation/2_Const_A09_t03: fail

# TBF: infinite look: class A {const A();final m = const A();}
Language/12_Expressions/01_Constants_A17_t03: fail

# analyzer issue https://code.google.com/p/dart/issues/detail?id=11534
Language/15_Types/4_Interface_Types_A11_t01: Skip
Language/15_Types/4_Interface_Types_A11_t02: Skip


LibTest/core/Uri/decodeQueryComponent_A02_t01: fail # co19 Issue 591

# co19 issue #380, Strings class has been removed
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterClassEscape_A04_t01: fail, OK

# co19 issue #400, collection library reorg
LibTest/core/String/concat_A01_t01: fail, OK
LibTest/core/String/concat_A02_t01: fail, OK

# co19 issue #424, Uninitialized finals are warnings not errors
Language/05_Variables/05_Variables_A07_t05: fail, OK
Language/05_Variables/05_Variables_A07_t06: fail, OK
Language/05_Variables/05_Variables_A07_t07: fail, OK
Language/05_Variables/05_Variables_A07_t08: fail, OK
Language/05_Variables/05_Variables_A08_t01: fail, OK

# co19 issue #425, Only static fields can be declared as 'const'
Language/05_Variables/05_Variables_A12_t01: fail, OK
Language/05_Variables/05_Variables_A12_t06: fail, OK
Language/05_Variables/05_Variables_A13_t01: fail, OK
Language/07_Classes/07_Classes_A02_t11: fail, OK

# co19 issue #442, undefined name "Expect"
Language/15_Types/4_Interface_Types_A08_t03: fail, OK

# co19 issue #455, undeclared identifier is static warning
Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t10: fail, OK
Language/13_Statements/04_Local_Function_Declaration_A02_t02: fail, OK
Language/14_Libraries_and_Scripts/1_Imports_A02_t12: fail, OK
Language/14_Libraries_and_Scripts/1_Imports_A02_t15: fail, OK

# co19 issue #513, rules for finals were loosened, contradiction in spec was fixed
Language/07_Classes/6_Constructors/1_Generative_Constructors_A21_t01: fail, OK

# co19 issue #438, Static variables are initialized lazily, need not be constants
Language/12_Expressions/01_Constants_A16_t01: fail, OK
Language/12_Expressions/01_Constants_A16_t02: fail, OK

# co19 issue #454 (wrongly closed)
Language/12_Expressions/12_Instance_Creation/1_New_A01_t04: fail, OK

# co19 issue #528, Const: wrong number of type arguments
Language/12_Expressions/12_Instance_Creation_A01_t02: fail, OK
Language/12_Expressions/12_Instance_Creation_A01_t05: fail, OK
Language/12_Expressions/12_Instance_Creation_A01_t06: fail, OK

# co19 issue #433 (wrongly closed), missing @static-warning annotation
Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t01: fail, OK
Language/12_Expressions/15_Method_Invocation/3_Static_Invocation_A03_t07: fail, OK

# co19 issue #541: tests contain unqualified reference to static members defined in superclass
Language/12_Expressions/14_Function_Invocation/3_Unqualified_Invocation_A01_t07: fail, OK
Language/12_Expressions/30_Identifier_Reference_A14_t03: fail, OK

# co19 issue #543: invocation of a non-function
Language/12_Expressions/14_Function_Invocation/4_Function_Expression_Invocation_A03_t02: fail, OK

Language/07_Classes/1_Instance_Methods_A03_t06: fail # co19-roll r587: Please triage this failure
Language/07_Classes/4_Abstract_Instance_Members_A07_t08: fail # co19-roll r587: Please triage this failure
Language/07_Classes/6_Constructors/1_Generative_Constructors_A12_t02: fail # co19-roll r587: Please triage this failure
Language/07_Classes/6_Constructors/1_Generative_Constructors_A20_t02: fail # co19-roll r587: Please triage this failure
Language/13_Statements/11_Return_A07_t01: fail # co19-roll r546: Please triage this failure
Language/14_Libraries_and_Scripts/1_Imports_A03_t27: fail # co19-roll r546: Please triage this failure
Language/14_Libraries_and_Scripts/1_Imports_A03_t47: fail # co19-roll r546: Please triage this failure
Language/14_Libraries_and_Scripts/1_Imports_A03_t67: fail # co19-roll r546: Please triage this failure
Language/14_Libraries_and_Scripts/2_Exports_A05_t01: fail # co19-roll r546: Please triage this failure
Language/14_Libraries_and_Scripts/5_URIs_A01_t24: fail # co19-roll r546: Please triage this failure
Language/14_Libraries_and_Scripts/5_URIs_A01_t25: fail # co19-roll r546: Please triage this failure
Language/15_Types/6_Type_dynamic_A03_t01: fail # co19-roll r546: Please triage this failure
Language/15_Types/6_Type_dynamic_A04_t01: fail # co19-roll r546: Please triage this failure
LibTest/async/Future/asStream_A01_t02: pass # co19-roll r546: Please triage this failure
LibTest/async/Future/asStream_A02_t01: pass # co19-roll r546: Please triage this failure
LibTest/async/Future/whenComplete_A03_t01: pass # co19-roll r546: Please triage this failure
