|  | // Copyright (c) 2022, 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. | 
|  |  | 
|  | // SharedOptions=--enable-experiment=class-modifiers | 
|  |  | 
|  | // Tests we can still use `base` as an identifier. | 
|  |  | 
|  | import 'package:expect/expect.dart'; | 
|  |  | 
|  | class base { | 
|  | int x = 0; | 
|  | } | 
|  |  | 
|  | class BaseField { | 
|  | int base = 0; | 
|  | } | 
|  |  | 
|  | class BaseMethod { | 
|  | int base() => 1; | 
|  | int foo(int base) => base; | 
|  | int? foo1([int? base]) => base; | 
|  | int? foo2({int? base}) => base; | 
|  | } | 
|  |  | 
|  | class BaseVariable { | 
|  | int foo() { | 
|  | var base = 2; | 
|  | return base; | 
|  | } | 
|  | } | 
|  |  | 
|  | class BaseAsType { | 
|  | int foo(base x) => x.x; | 
|  | base foo1 = base(); | 
|  | } | 
|  |  | 
|  | main() { | 
|  | var baseClass = base(); | 
|  | var baseField = BaseField(); | 
|  | var baseMethod = BaseMethod(); | 
|  | var baseVariable = BaseVariable(); | 
|  | var baseAsType = BaseAsType(); | 
|  |  | 
|  | Expect.equals(0, baseClass.x); | 
|  |  | 
|  | Expect.equals(0, baseField.base); | 
|  |  | 
|  | Expect.equals(1, baseMethod.base()); | 
|  | Expect.equals(1, baseMethod.foo(1)); | 
|  | Expect.equals(1, baseMethod.foo1(1)); | 
|  | Expect.equals(1, baseMethod.foo2(base: 1)); | 
|  |  | 
|  | Expect.equals(2, baseVariable.foo()); | 
|  |  | 
|  | Expect.equals(0, baseAsType.foo(base())); | 
|  | Expect.equals(0, baseAsType.foo1.x); | 
|  | } |