// 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. import "package:expect/expect.dart"; class A { final a; A(this.a); // Not const. const A.five() : a = 5; } class B extends A { final b; B(x) : b = x + 1, super(x); // Const constructor cannot call non-const super constructor. const B.zerofive() : b = 0, super(5); // ^^^^^^^^ // [analyzer] COMPILE_TIME_ERROR.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER // [cfe] A constant constructor can't call a non-constant super constructor. } class C extends A { C() : super(0); // Implicit call to non-const constructor A(x). const C.named(x); // ^ // [analyzer] COMPILE_TIME_ERROR.CONST_CONSTRUCTOR_WITH_NON_CONST_SUPER // [cfe] The superclass, 'A', has no unnamed constructor that takes no arguments. // ^^^^^^^ // [analyzer] COMPILE_TIME_ERROR.NO_DEFAULT_SUPER_CONSTRUCTOR } main() { var b = new B.zerofive(); var b1 = new B(0); var c = new C.named(""); }