// Copyright (c) 2019, 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 class Super { /*member: Super.field1:init,read=super*/ var field1; /*member: Super.field2:init,write=super*/ var field2; /*member: Super.field3:init,read=super*/ var field3; /*member: Super.field4:init,read=super*/ final field4; /*member: Super.field5:init,read=super*/ final field5; /*member: Super.constructor1:invoke*/ Super.constructor1(this.field4, this.field5); /*member: Super.constructor2:invoke=(0)*/ Super.constructor2([this.field4, this.field5]); /*member: Super.constructor3:invoke=(1)*/ Super.constructor3([this.field4, this.field5]); /*member: Super.method1:invoke=(1):super*/ method1([a, b]) {} /*member: Super.method2:invoke,read=super*/ method2([a, b]) {} /*member: Super.getter1:read=super*/ get getter1 => null; /*member: Super.getter2:read=super*/ get getter2 => null; /*member: Super.setter1=:write=super*/ set setter1(_) {} /*member: Super.call:invoke=(0,a,b,c)*/ void call({a, b, c, d}) {} } class Sub extends Super { /*member: Sub.constructor1:invoke=(1)*/ Sub.constructor1([field4, field5]) : super.constructor1(field4, field5); /*member: Sub.constructor2:invoke*/ Sub.constructor2() : super.constructor2(); /*member: Sub.readSuperField:invoke*/ readSuperField() { return super.field1; } /*member: Sub.writeSuperField:invoke*/ writeSuperField() { super.field2 = null; } /*member: Sub.invokeSuperField:invoke*/ invokeSuperField() { super.field3(a: 0); } /*member: Sub.readSuperFinalField:invoke*/ readSuperFinalField() { return super.field4; } /*member: Sub.invokeSuperFinalField:invoke*/ invokeSuperFinalField() { super.field5(b: 0); } /*member: Sub.invokeSuperMethod:invoke*/ invokeSuperMethod() { super.method1(0); } /*member: Sub.readSuperMethod:invoke*/ readSuperMethod() { return super.method2; } /*member: Sub.readSuperGetter:invoke*/ readSuperGetter() { return super.getter1; } /*member: Sub.invokeSuperGetter:invoke*/ invokeSuperGetter() { return super.getter2(c: 0); } /*member: Sub.writeSuperSetter:invoke*/ writeSuperSetter() { super.setter1 = null; } } /*member: main:invoke*/ void main() { new Super.constructor3(null); new Sub.constructor1(null); new Sub.constructor2() ..readSuperField() ..writeSuperField() ..invokeSuperField() ..readSuperFinalField() ..invokeSuperFinalField() ..invokeSuperMethod() ..readSuperMethod() ..readSuperGetter() ..invokeSuperGetter() ..writeSuperSetter(); }