// Copyright (c) 2017, 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. // @dart = 2.7 /*member: main:[null]*/ main() { initializingFormal(); fieldInitializer(); thisInitializer(); superInitializer(); } //////////////////////////////////////////////////////////////////////////////// // Constructor with initializing formal. //////////////////////////////////////////////////////////////////////////////// class Class1 { /*member: Class1.field:[exact=JSUInt31]*/ var field; /*member: Class1.:[exact=Class1]*/ Class1(this. /*[exact=JSUInt31]*/ field); } /*member: initializingFormal:[exact=Class1]*/ initializingFormal() => new Class1(0); //////////////////////////////////////////////////////////////////////////////// // Constructor with field initializer. //////////////////////////////////////////////////////////////////////////////// class Class2 { /*member: Class2.field:[exact=JSUInt31]*/ var field; /*member: Class2.:[exact=Class2]*/ Class2(/*[exact=JSUInt31]*/ field) : this.field = field; } /*member: fieldInitializer:[exact=Class2]*/ fieldInitializer() => new Class2(0); //////////////////////////////////////////////////////////////////////////////// // Redirecting generative constructor. //////////////////////////////////////////////////////////////////////////////// class Class3 { /*member: Class3.field:[exact=JSUInt31]*/ var field; /*member: Class3._:[exact=Class3]*/ Class3._(this. /*[exact=JSUInt31]*/ field); /*member: Class3.:[exact=Class3]*/ Class3(/*[exact=JSUInt31]*/ field) : this._(field); } /*member: thisInitializer:[exact=Class3]*/ thisInitializer() => new Class3(0); //////////////////////////////////////////////////////////////////////////////// // Constructor with super constructor call. //////////////////////////////////////////////////////////////////////////////// abstract class SuperClass4 { /*member: SuperClass4.field:[exact=JSUInt31]*/ var field; /*member: SuperClass4.:[exact=Class4]*/ SuperClass4(this. /*[exact=JSUInt31]*/ field); } class Class4 extends SuperClass4 { /*member: Class4.:[exact=Class4]*/ Class4(/*[exact=JSUInt31]*/ field) : super(field); } /*member: superInitializer:[exact=Class4]*/ superInitializer() => new Class4(0);