| // Copyright (c) 2023, 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. |
| |
| // Tests that external private final fields are not promotable. |
| // |
| // An external field that is final is effectively just a getter whose |
| // implementation is in external code. As such, it shouldn't be promotable, |
| // because it's not guaranteed to yield the same value each time it's invoked. |
| |
| import 'package:expect/static_type_helper.dart'; |
| |
| class C { |
| external final int? _field; |
| } |
| |
| void test(C c) { |
| if (c._field != null) { |
| c._field.expectStaticType<Exactly<int?>>(); // Not promoted |
| } |
| } |
| |
| main() {} |