55import 'dart:convert' ;
66
77import 'package:analyzer/file_system/memory_file_system.dart' ;
8+ import 'package:analyzer_testing/utilities/extensions/resource_provider.dart' ;
89import 'package:test_descriptor/test_descriptor.dart' as d;
910import 'package:yaml/yaml.dart' as yaml;
1011
@@ -109,28 +110,11 @@ Future<String> createPackage(
109110 }
110111}
111112
112- extension DescriptorExtensions on d.Descriptor {
113- /// Creates this [d.Descriptor] in the [MemoryResourceProvider] .
114- ///
115- /// For a [d.DirectoryDescriptor] , the subtree will be created. For a
116- /// [d.FileDescriptor] , the file contents will be written.
117- Future <String > createInMemory (MemoryResourceProvider resourceProvider,
118- [String ? parent]) {
119- var self = this ;
120- return switch (self) {
121- d.DirectoryDescriptor () => self.createInMemory (resourceProvider, parent),
122- d.FileDescriptor () => self.createInMemory (resourceProvider, parent! ),
123- _ => throw StateError (
124- '$runtimeType is not a DirectoryDescriptor, nor a FileDescriptor!' )
125- };
126- }
127- }
128-
129113extension on d.DirectoryDescriptor {
130114 Future <String > createInMemory (MemoryResourceProvider resourceProvider,
131115 [String ? parent]) async {
132- parent ?? = resourceProvider.pathContext
133- . canonicalize (resourceProvider.convertPath ('/temp' ));
116+ parent ?? = resourceProvider.pathContext. canonicalize (
117+ ResourceProviderExtension (resourceProvider) .convertPath ('/temp' ));
134118 resourceProvider.newFolder (parent).create ();
135119 var fullPath = resourceProvider.pathContext.join (parent, name);
136120 resourceProvider.newFolder (fullPath).create ();
@@ -145,9 +129,26 @@ extension on d.FileDescriptor {
145129 Future <String > createInMemory (
146130 MemoryResourceProvider resourceProvider, String parent) async {
147131 var content = await readAsBytes ().transform (utf8.decoder).join ('' );
148- var fullPath = resourceProvider
132+ var fullPath = ResourceProviderExtension ( resourceProvider)
149133 .convertPath (resourceProvider.pathContext.join (parent, name));
150134 resourceProvider.newFile (fullPath, content);
151135 return fullPath;
152136 }
153137}
138+
139+ extension DescriptorExtensions on d.Descriptor {
140+ /// Creates this [d.Descriptor] in the [MemoryResourceProvider] .
141+ ///
142+ /// For a [d.DirectoryDescriptor] , the subtree will be created. For a
143+ /// [d.FileDescriptor] , the file contents will be written.
144+ Future <String > createInMemory (MemoryResourceProvider resourceProvider,
145+ [String ? parent]) {
146+ var self = this ;
147+ return switch (self) {
148+ d.DirectoryDescriptor () => self.createInMemory (resourceProvider, parent),
149+ d.FileDescriptor () => self.createInMemory (resourceProvider, parent! ),
150+ _ => throw StateError (
151+ '$runtimeType is not a DirectoryDescriptor, nor a FileDescriptor!' )
152+ };
153+ }
154+ }
0 commit comments