@@ -275,6 +275,35 @@ class LibraryImportScopeTest extends ResolverTestCase {
275
275
importedType);
276
276
}
277
277
278
+ void test_extensions_imported () {
279
+ var context = AnalysisContextFactory .contextWithCore (
280
+ resourceProvider: resourceProvider);
281
+
282
+ var extension = ExtensionElementImpl .forNode (
283
+ AstTestFactory .identifier3 ('test_extension' ));
284
+
285
+ var importedUnit1 = ElementFactory .compilationUnit ('/imported1.dart' );
286
+ importedUnit1.extensions = < ExtensionElement > [extension ];
287
+
288
+ var importedLibraryName = 'imported_lib' ;
289
+ var importedLibrary = LibraryElementImpl (context, null , importedLibraryName,
290
+ 0 , importedLibraryName.length, false );
291
+ importedLibrary.definingCompilationUnit = importedUnit1;
292
+
293
+ var importingLibraryName = 'importing_lib' ;
294
+ var importingLibrary = LibraryElementImpl (context, null ,
295
+ importingLibraryName, 0 , importingLibraryName.length, false );
296
+ importingLibrary.definingCompilationUnit =
297
+ ElementFactory .compilationUnit ('/importing.dart' );
298
+
299
+ var importElement = ImportElementImpl (0 );
300
+ importElement.importedLibrary = importedLibrary;
301
+ importingLibrary.imports = < ImportElement > [importElement];
302
+
303
+ expect (
304
+ LibraryImportScope (importingLibrary).extensions, contains (extension ));
305
+ }
306
+
278
307
void test_prefixedAndNonPrefixed () {
279
308
AnalysisContext context = AnalysisContextFactory .contextWithCore (
280
309
resourceProvider: resourceProvider);
@@ -352,6 +381,43 @@ class LibraryScopeTest extends ResolverTestCase {
352
381
353
382
expect (LibraryScope (library).extensions, contains (extension ));
354
383
}
384
+
385
+ void test_extensions_imported () {
386
+ var context = AnalysisContextFactory .contextWithCore (
387
+ resourceProvider: resourceProvider);
388
+
389
+ var importedUnit1 = ElementFactory .compilationUnit ('/imported1.dart' );
390
+ var importedExtension = ExtensionElementImpl .forNode (
391
+ AstTestFactory .identifier3 ('test_extension' ));
392
+ var unnamedImportedExtension = ExtensionElementImpl .forNode (null );
393
+ importedUnit1.extensions = [importedExtension, unnamedImportedExtension];
394
+
395
+ var importedLibraryName = 'imported_lib' ;
396
+ var importedLibrary = LibraryElementImpl (context, null , importedLibraryName,
397
+ 0 , importedLibraryName.length, false );
398
+ importedLibrary.definingCompilationUnit = importedUnit1;
399
+
400
+ var importingLibraryName = 'importing_lib' ;
401
+ var importingLibrary = LibraryElementImpl (context, null ,
402
+ importingLibraryName, 0 , importingLibraryName.length, false );
403
+
404
+ var localExtension = ExtensionElementImpl .forNode (
405
+ AstTestFactory .identifier3 ('test_extension' ));
406
+
407
+ var importingUnit = ElementFactory .compilationUnit ('/importing.dart' );
408
+ importingUnit.extensions = [localExtension];
409
+ importingLibrary.definingCompilationUnit = importingUnit;
410
+
411
+ var importElement = ImportElementImpl (0 );
412
+ importElement.importedLibrary = importedLibrary;
413
+ importingLibrary.imports = [importElement];
414
+
415
+ var libraryExtensions = LibraryScope (importingLibrary).extensions;
416
+
417
+ expect (libraryExtensions, contains (localExtension));
418
+ expect (libraryExtensions, contains (importedExtension));
419
+ expect (libraryExtensions, isNot (contains (unnamedImportedExtension)));
420
+ }
355
421
}
356
422
357
423
@reflectiveTest
0 commit comments