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

class Constants {
  static final PI = 3.14;
  static final foo = 2;
}

class A {
  static final y = 0;
  int x;
  A() : x = 2 {}
  A.named() : x = 4 {}
  A.superC(x) : x = x + 11 {}
  factory A.fac() { return new A.named(); }
}

class B extends A {
  B() : super() {}
  B.named() : super.superC(2) {}
  factory B.fac() { return new B.named(); }
}

class C {
  final int x;
  const C() : x = 2;
  const C.named() : x = 4;
  const C.superC(x) : x = x + 11;
  factory C.fac() { return const C.named(); }
}

class D extends C {
  const D() : super();
  const D.named() : super.superC(2);
  factory D.fac() { return const D.named(); }
}

class E {
  var f;
  E() {}
  E.fun(x) : f = (() { return x + 13; }) {}
  static foo() { return 3; }
  static fooo(x) { return () { return x + 1024; }; }
  bar() { return 4; }
  toto(x) { return () { return x + 5; }; }
}
