// 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 /*member: field1a:init,read*/ var field1a; /*member: field1b:init,write*/ var field1b; /*member: field1c:init,read,write*/ var field1c; // Invocations of static/top level fields are converted into 'field1d.call(...)` // so we don't have an invocation of the field but instead an additional dynamic // call to 'call'. /*member: field1d:init,read*/ var field1d; /*member: field2a:read*/ get field2a => 42; set field2a(_) {} get field2b => 42; /*member: field2b=:write*/ set field2b(_) {} /*member: field2c:read*/ get field2c => 42; /*member: field2c=:write*/ set field2c(_) {} // Invocations of static/top level getters are converted into // 'field2d.call(...)` so we don't have an invocation of the field but instead // an additional dynamic call to 'call'. /*member: field2d:read*/ get field2d => 42; set field2d(_) {} class Class { /*member: Class.field1a:init,read*/ var field1a; /*member: Class.field1b:init,write*/ var field1b; /*member: Class.field1c:init,read,write*/ var field1c; /*member: Class.field1d:init,invoke,read=static*/ var field1d; /*member: Class.field2a:read*/ get field2a => 42; set field2a(_) {} get field2b => 42; /*member: Class.field2b=:write*/ set field2b(_) {} /*member: Class.field2c:read*/ get field2c => 42; /*member: Class.field2c=:write*/ set field2c(_) {} /*member: Class.field2d:invoke,read=static*/ get field2d => null; set field2d(_) {} /*member: Class.field3a:init*/ var field3a = 0; /*member: Class.field3b:init*/ var field3b; /*member: Class.:invoke=(0)*/ Class([this.field3b]); /*member: Class.test:invoke*/ test() { field1a; field1b = 42; field1c = field1c; field1d(); field2a; field2b = 42; field2c = field2c; field2d(); } } /*member: main:invoke*/ main() { field1a; field1b = 42; field1c = field1c; field1d(); field2a; field2b = 42; field2c = field2c; field2d(); new Class().test(); }