| // Copyright (c) 2024, 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. |
| |
| /// A resolved reference to an entity. |
| // TODO(johnniwinther): Do we need to split these into subtypes? |
| sealed class Reference { |
| const Reference(); |
| } |
| |
| abstract class FieldReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'FieldReference(${name})'; |
| } |
| |
| abstract class FunctionReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'FunctionReference(${name})'; |
| } |
| |
| abstract class ConstructorReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'ConstructorReference(${name})'; |
| } |
| |
| abstract class TypeReference extends Reference { |
| const TypeReference(); |
| |
| String get name; |
| |
| @override |
| String toString() => 'TypeReference(${name})'; |
| } |
| |
| abstract class ClassReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'ClassReference(${name})'; |
| } |
| |
| abstract class TypedefReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'TypedefReference(${name})'; |
| } |
| |
| abstract class ExtensionReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'ExtensionReference(${name})'; |
| } |
| |
| abstract class ExtensionTypeReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'ExtensionTypeReference(${name})'; |
| } |
| |
| abstract class EnumReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'EnumReference(${name})'; |
| } |
| |
| abstract class MixinReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'MixinReference(${name})'; |
| } |
| |
| abstract class FunctionTypeParameterReference extends Reference { |
| String get name; |
| |
| @override |
| String toString() => 'FunctionTypeParameterReference(${name})'; |
| } |
| |
| /// Symbolic references needed during parsing. |
| abstract class References { |
| /// The [TypeReference] used for parsing `void`. |
| TypeReference get voidReference; |
| |
| /// The [TypeReference] used for parsing `void`. |
| TypeReference get dynamicReference; |
| } |