// 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.9 class Class { static var field; } extension Extension on Class { static get property => Class.field; static set property(value) { Class.field = value; } static var field; static readGetter() { return property; } static writeSetterRequired(value) { property = value; } static writeSetterOptional([value]) { property = value; } static writeSetterNamed({value}) { property = value; } static genericWriteSetterRequired(S value) { property = value; } static genericWriteSetterOptional([S value]) { property = value; } static genericWriteSetterNamed({S value}) { property = value; } static get tearOffGetterNoArgs => readGetter; static get tearOffGetterRequired => writeSetterRequired; static get tearOffGetterOptional => writeSetterOptional; static get tearOffGetterNamed => writeSetterNamed; static get tearOffGetterGenericRequired => genericWriteSetterRequired; static get tearOffGetterGenericOptional => genericWriteSetterOptional; static get tearOffGetterGenericNamed => genericWriteSetterNamed; static invocationsFromStaticContext(int value) { readGetter(); writeSetterRequired(value); writeSetterOptional(); writeSetterOptional(value); writeSetterNamed(); writeSetterNamed(value: value); genericWriteSetterRequired(value); genericWriteSetterRequired(value); genericWriteSetterOptional(); genericWriteSetterOptional(); genericWriteSetterOptional(value); genericWriteSetterOptional(value); genericWriteSetterNamed(); genericWriteSetterNamed(); genericWriteSetterNamed(value: value); genericWriteSetterNamed(value: value); } static tearOffsFromStaticContext(int value) { var tearOffNoArgs = readGetter; tearOffNoArgs(); var tearOffRequired = writeSetterRequired; tearOffRequired(value); var tearOffOptional = writeSetterOptional; tearOffOptional(); tearOffOptional(value); var tearOffNamed = writeSetterNamed; tearOffNamed(); tearOffNamed(value: value); var tearOffGenericRequired = genericWriteSetterRequired; tearOffGenericRequired(value); tearOffGenericRequired(value); var tearOffGenericOptional = genericWriteSetterOptional; tearOffGenericOptional(); tearOffGenericOptional(); tearOffGenericOptional(value); tearOffGenericOptional(value); var tearOffGenericNamed = genericWriteSetterNamed; tearOffGenericNamed(); tearOffGenericNamed(); tearOffGenericNamed(value: value); tearOffGenericNamed(value: value); } static fieldAccessFromStaticContext() { field = property; property = field; } static getterCallsFromStaticContext(int value) { tearOffGetterNoArgs(); tearOffGetterRequired(value); tearOffGetterOptional(); tearOffGetterOptional(value); tearOffGetterNamed(); tearOffGetterNamed(value: value); tearOffGetterGenericRequired(value); tearOffGetterGenericRequired(value); tearOffGetterGenericOptional(); tearOffGetterGenericOptional(); tearOffGetterGenericOptional(value); tearOffGetterGenericOptional(value); tearOffGetterGenericNamed(); tearOffGetterGenericNamed(); tearOffGetterGenericNamed(value: value); tearOffGetterGenericNamed(value: value); } invocationsFromInstanceContext(T value) { readGetter(); writeSetterRequired(value); writeSetterOptional(); writeSetterOptional(value); writeSetterNamed(); writeSetterNamed(value: value); genericWriteSetterRequired(value); genericWriteSetterRequired(value); genericWriteSetterOptional(); genericWriteSetterOptional(); genericWriteSetterOptional(value); genericWriteSetterOptional(value); genericWriteSetterNamed(); genericWriteSetterNamed(); genericWriteSetterNamed(value: value); genericWriteSetterNamed(value: value); } tearOffsFromInstanceContext(T value) { var tearOffNoArgs = readGetter; tearOffNoArgs(); var tearOffRequired = writeSetterRequired; tearOffRequired(value); var tearOffOptional = writeSetterOptional; tearOffOptional(); tearOffOptional(value); var tearOffNamed = writeSetterNamed; tearOffNamed(); tearOffNamed(value: value); var tearOffGenericRequired = genericWriteSetterRequired; tearOffGenericRequired(value); tearOffGenericRequired(value); var tearOffGenericOptional = genericWriteSetterOptional; tearOffGenericOptional(); tearOffGenericOptional(); tearOffGenericOptional(value); tearOffGenericOptional(value); var tearOffGenericNamed = genericWriteSetterNamed; tearOffGenericNamed(); tearOffGenericNamed(); tearOffGenericNamed(value: value); tearOffGenericNamed(value: value); } fieldAccessFromInstanceContext() { field = property; property = field; } getterCallsFromInstanceContext(T value) { tearOffGetterNoArgs(); tearOffGetterRequired(value); tearOffGetterOptional(); tearOffGetterOptional(value); tearOffGetterNamed(); tearOffGetterNamed(value: value); tearOffGetterGenericRequired(value); tearOffGetterGenericRequired(value); tearOffGetterGenericOptional(); tearOffGetterGenericOptional(); tearOffGetterGenericOptional(value); tearOffGetterGenericOptional(value); tearOffGetterGenericNamed(); tearOffGetterGenericNamed(); tearOffGetterGenericNamed(value: value); tearOffGetterGenericNamed(value: value); } } main() {}