| // Copyright (c) 2020, 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. |
| |
| import 'package:analyzer/src/error/codes.dart'; |
| import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| |
| import '../dart/resolution/context_collection_resolution.dart'; |
| |
| main() { |
| defineReflectiveSuite(() { |
| defineReflectiveTests(ImportInternalLibraryTest); |
| }); |
| } |
| |
| @reflectiveTest |
| class ImportInternalLibraryTest extends PubPackageResolutionTest { |
| test_internal() async { |
| // Note, in these error cases we may generate an UNUSED_IMPORT hint, while |
| // we could prevent the hint from being generated by testing the import |
| // directive for the error, this is such a minor corner case that we don't |
| // think we should add the additional computation time to figure out such |
| // cases. |
| await assertErrorsInCode(''' |
| import 'dart:_internal'; |
| ''', [ |
| error(CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY, 7, 16), |
| error(WarningCode.UNUSED_IMPORT, 7, 16), |
| ]); |
| } |
| |
| test_wasm_fromJs() async { |
| var packageRootPath = _newPackage('js'); |
| var file = newFile('$packageRootPath/lib/js.dart', ''' |
| import 'dart:_wasm'; |
| '''); |
| await resolveFile2(file); |
| assertErrorsInResolvedUnit(result, [ |
| error(WarningCode.UNUSED_IMPORT, 7, 12), |
| ]); |
| } |
| |
| test_wasm_fromTest() async { |
| await assertErrorsInCode(''' |
| import 'dart:_wasm'; |
| ''', [ |
| error(CompileTimeErrorCode.IMPORT_INTERNAL_LIBRARY, 7, 12), |
| error(WarningCode.UNUSED_IMPORT, 7, 12), |
| ]); |
| } |
| |
| test_wasm_fromUi() async { |
| var packageRootPath = _newPackage('ui'); |
| var file = newFile('$packageRootPath/lib/ui.dart', ''' |
| import 'dart:_wasm'; |
| '''); |
| await resolveFile2(file); |
| assertErrorsInResolvedUnit(result, [ |
| error(WarningCode.UNUSED_IMPORT, 7, 12), |
| ]); |
| } |
| |
| String _newPackage(String packageName) { |
| var packageRootPath = '$workspaceRootPath/$packageName'; |
| var builder = PackageConfigFileBuilder(); |
| builder.add( |
| name: packageName, |
| rootPath: packageRootPath, |
| languageVersion: testPackageLanguageVersion, |
| ); |
| writePackageConfig(packageRootPath, builder); |
| return packageRootPath; |
| } |
| } |