// Copyright (c) 2020, 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.md file. class Class { int property = 0; int method() => 0; Function functionField = () {}; void Function() functionTypeField = () {}; Function get functionGetter => () {}; void Function() get functionTypeGetter => () {}; } extension Extension on Class { int operator +(int value) => 0; int operator -() => 0; int operator [](int index) => 0; void operator []=(int index, int value) {} int call() => 0; int get extensionProperty => 0; void set extensionProperty(int value) {} int extensionMethod() => 0; Function get extensionFunctionGetter => () {}; void Function() get extensionFunctionTypeGetter => () {}; } Function? get nullableFunction => () {}; void Function()? get nullableFunctionType => () {}; int? get nullableInt => 0; Map? get nullableMap => {}; Class? get nullableClass => new Class(); var topLevelBinary = nullableInt + 0; var topLevelUnary = -nullableInt; var topLevelIndexGet = nullableMap[0]; var topLevelIndexSet = nullableMap[0] = 1; var topLevelIndexGetSet = nullableMap[0] += 1; var topLevelPropertyGet = nullableClass.property; var topLevelPropertySet = nullableClass.property = 1; var topLevelPropertyGetSet = nullableClass.property += 1; var topLevelMethodInvocation = nullableClass.method(); var topLevelMethodTearOff = nullableClass.method; var topLevelFunctionImplicitCall = nullableFunction(); var topLevelFunctionExplicitCall = nullableFunction.call(); var topLevelFunctionTearOff = nullableFunction.call; var topLevelFunctionTypeImplicitCall = nullableFunctionType(); var topLevelFunctionTypeExplicitCall = nullableFunctionType.call(); var topLevelFunctionTypeTearOff = nullableFunctionType.call; var topLevelFunctionField = nullableClass.functionField(); var topLevelFunctionTypeField = nullableClass.functionTypeField(); var topLevelFunctionGetter = nullableClass.functionGetter(); var topLevelFunctionTypeGetter = nullableClass.functionTypeGetter(); var topLevelExtensionBinary = nullableClass + 0; var topLevelExtensionUnary = -nullableClass; var topLevelExtensionIndexGet = nullableClass[0]; var topLevelExtensionIndexSet = nullableClass[0] = 1; var topLevelExtensionIndexGetSet = nullableClass[0] += 1; var topLevelExtensionPropertyGet = nullableClass.extensionProperty; var topLevelExtensionPropertySet = nullableClass.extensionProperty = 1; var topLevelExtensionPropertyGetSet = nullableClass.extensionProperty += 1; var topLevelExtensionMethodInvocation = nullableClass.extensionMethod(); var topLevelExtensionMethodTearOff = nullableClass.extensionMethod; var topLevelExtensionFunctionTypeImplicitCall = nullableClass(); var topLevelExtensionFunctionTypeExplicitCall = nullableClass.call(); var topLevelExtensionFunctionTypeTearOff = nullableClass.call; var topLevelExtensionFunctionGetter = nullableClass.extensionFunctionGetter(); var topLevelExtensionFunctionTypeGetter = nullableClass.extensionFunctionTypeGetter(); test() { var localBinary = nullableInt + 0; var localUnary = -nullableInt; var localIndexGet = nullableMap[0]; var localIndexSet = nullableMap[0] = 1; var localIndexGetSet = nullableMap[0] += 1; var localPropertyGet = nullableClass.property; var localPropertySet = nullableClass.property = 1; var localPropertyGetSet = nullableClass.property += 1; var localMethodInvocation = nullableClass.method(); var localMethodTearOff = nullableClass.method; var localFunctionImplicitCall = nullableFunction(); var localFunctionExplicitCall = nullableFunction.call(); var localFunctionTearOff = nullableFunction.call; var localFunctionTypeImplicitCall = nullableFunctionType(); var localFunctionTypeExplicitCall = nullableFunctionType.call(); var localFunctionTypeTearOff = nullableFunctionType.call; var localFunctionField = nullableClass.functionField(); var localFunctionTypeField = nullableClass.functionTypeField(); var localFunctionGetter = nullableClass.functionGetter(); var localFunctionTypeGetter = nullableClass.functionTypeGetter(); var localExtensionBinary = nullableClass + 0; var localExtensionUnary = -nullableClass; var localExtensionIndexGet = nullableClass[0]; var localExtensionIndexSet = nullableClass[0] = 1; var localExtensionIndexGetSet = nullableClass[0] += 1; var localExtensionPropertyGet = nullableClass.extensionProperty; var localExtensionPropertySet = nullableClass.extensionProperty = 1; var localExtensionPropertyGetSet = nullableClass.extensionProperty += 1; var localExtensionMethodInvocation = nullableClass.extensionMethod(); var localExtensionMethodTearOff = nullableClass.extensionMethod; var localExtensionFunctionTypeImplicitCall = nullableClass(); var localExtensionFunctionTypeExplicitCall = nullableClass.call(); var localExtensionFunctionTypeTearOff = nullableClass.call; var localExtensionFunctionGetter = nullableClass.extensionFunctionGetter(); var localExtensionFunctionTypeGetter = nullableClass.extensionFunctionTypeGetter(); } main() {}