| // 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. |
| |
| /// Suffix indicating the nullability of a type. |
| /// |
| /// This enum describes whether a `?` or `*` would be used at the end of the |
| /// canonical representation of a type. It's subtly different the notions of |
| /// "nullable", "non-nullable", "potentially nullable", and "potentially |
| /// non-nullable" defined by the spec. For example, the type `Null` is |
| /// nullable, even though it lacks a trailing `?`. |
| enum NullabilitySuffix { |
| /// An indication that the canonical representation of the type under |
| /// consideration ends with `?`. Types having this nullability suffix should |
| /// be interpreted as being unioned with the Null type. |
| question, |
| |
| /// An indication that the canonical representation of the type under |
| /// consideration ends with `*`. Types having this nullability suffix are |
| /// called "legacy types"; it has not yet been determined whether they should |
| /// be unioned with the Null type. |
| star, |
| |
| /// An indication that the canonical representation of the type under |
| /// consideration does not end with either `?` or `*`. |
| none |
| } |