| // 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. | 
 |  | 
 | part of 'fragment.dart'; | 
 |  | 
 | class ExtensionFragment extends DeclarationFragmentImpl implements Fragment { | 
 |   final ExtensionName extensionName; | 
 |  | 
 |   final int nameOrExtensionOffset; | 
 |  | 
 |   SourceExtensionBuilder? _builder; | 
 |  | 
 |   late final List<MetadataBuilder>? metadata; | 
 |   late final Modifiers modifiers; | 
 |   late final TypeBuilder onType; | 
 |   late final int startOffset; | 
 |   late final int endOffset; | 
 |  | 
 |   @override | 
 |   late final UriOffsetLength uriOffset = isUnnamed | 
 |       ? new UriOffset(fileUri, nameOrExtensionOffset) | 
 |       : new UriOffsetLength(fileUri, nameOrExtensionOffset, name.length); | 
 |  | 
 |   ExtensionFragment({ | 
 |     required String? name, | 
 |     required super.fileUri, | 
 |     required this.nameOrExtensionOffset, | 
 |     required super.typeParameters, | 
 |     required super.enclosingScope, | 
 |     required super.typeParameterScope, | 
 |     required super.nominalParameterNameSpace, | 
 |     required super.enclosingCompilationUnit, | 
 |   }) : extensionName = name != null | 
 |             ? new FixedExtensionName(name) | 
 |             : new UnnamedExtensionName(); | 
 |  | 
 |   @override | 
 |   // Coverage-ignore(suite): Not run. | 
 |   SourceExtensionBuilder get builder { | 
 |     assert(_builder != null, "Builder has not been computed for $this."); | 
 |     return _builder!; | 
 |   } | 
 |  | 
 |   void set builder(SourceExtensionBuilder value) { | 
 |     assert(_builder == null, "Builder has already been computed for $this."); | 
 |     _builder = value; | 
 |   } | 
 |  | 
 |   @override | 
 |   bool get isPatch => enclosingCompilationUnit.isPatch && modifiers.isAugment; | 
 |  | 
 |   bool get isUnnamed => extensionName.isUnnamedExtension; | 
 |  | 
 |   @override | 
 |   DeclarationFragmentKind get kind => | 
 |       DeclarationFragmentKind.extensionDeclaration; | 
 |  | 
 |   @override | 
 |   String get name => extensionName.name; | 
 |  | 
 |   @override | 
 |   String toString() => '$runtimeType($name,$fileUri,$nameOrExtensionOffset)'; | 
 | } |