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

foo(x
    , static int y // //# 01: compile-time error
    , static final y // //# 02: compile-time error
    , {static y} // //# 03: compile-time error
    , [static y] // //# 04: compile-time error
    ) {}

class C {
  bar(x
      , static int y // //# 05: compile-time error
      , static final y // //# 06: compile-time error
      , {static y} // //# 07: compile-time error
      , [static y] // //# 08: compile-time error
      ) {}

  static baz(x
      , static int y // //# 09: compile-time error
      , static final y // //# 10: compile-time error
      , {static y} // //# 11: compile-time error
      , [static y] // //# 12: compile-time error
      ) {}
}

main() {
  foo(1
      , 1 // //# 01: continued
      , 1 // //# 02: continued
      , y: 1 // //# 03: continued
      , 1 // //# 04: continued
      );
  new C().bar(1
      , 1 // //# 05: continued
      , 1 // //# 06: continued
      , y: 1 // //# 07: continued
      , 1 // //# 08: continued
      );
  C.baz(1
      , 1 // //# 09: continued
      , 1 // //# 10: continued
      , y: 1 // //# 11: continued
      , 1 // //# 12: continued
      );
}
