// Copyright (c) 2011, 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.
// Test that we detect that a function literal is not
// a compile time constant.

class FunctionTypeParameterNegativeTest {

  static var formatter;

  static SetFormatter([String fmt(int i) = (i) => "$i"]) {
    formatter = fmt;
  }

  static void testMain() {
    SetFormatter();
  }
}

main() {
  FunctionTypeParameterNegativeTest.testMain();
}
