| Index: lib/src/rules/only_throw_errors.dart
|
| diff --git a/lib/src/rules/only_throw_error.dart b/lib/src/rules/only_throw_errors.dart
|
| similarity index 76%
|
| rename from lib/src/rules/only_throw_error.dart
|
| rename to lib/src/rules/only_throw_errors.dart
|
| index 6b8c532db87a70b6db200ce4ad1e71995a396a1d..10105991d2f70a5e6d1537c9f2b60fb95f113286 100644
|
| --- a/lib/src/rules/only_throw_error.dart
|
| +++ b/lib/src/rules/only_throw_errors.dart
|
| @@ -6,18 +6,20 @@
|
| library linter.src.rules.only_throw_error;
|
|
|
| import 'dart:collection';
|
| +
|
| import 'package:analyzer/dart/ast/ast.dart';
|
| import 'package:analyzer/dart/ast/visitor.dart';
|
| import 'package:analyzer/dart/element/type.dart';
|
| import 'package:linter/src/linter.dart';
|
| import 'package:linter/src/util/dart_type_utilities.dart';
|
|
|
| -const _desc = r'Only throw instaces of classes extending either Exception or Error';
|
| +const _desc =
|
| + r'Only throw instances of classes extending either Exception or Error';
|
|
|
| const _details = r'''
|
|
|
| -**DO** throw only instances of classes that extend dart.core.Error or
|
| -dart.core.Exception.
|
| +**DO** throw only instances of classes that extend `dart.core.Error` or
|
| +`dart.core.Exception`.
|
|
|
| **BAD:**
|
| ```
|
| @@ -35,15 +37,30 @@ void throwArgumentError() {
|
| ```
|
| ''';
|
|
|
| -class OnlyThrowError extends LintRule {
|
| +const _errorClassName = 'Error';
|
| +
|
| +const _exceptionClassName = 'Exception';
|
| +
|
| +const _library = 'dart.core';
|
| +final LinkedHashSet<InterfaceTypeDefinition> _interfaceDefinitions =
|
| + new LinkedHashSet<InterfaceTypeDefinition>.from([
|
| + new InterfaceTypeDefinition(_exceptionClassName, _library),
|
| + new InterfaceTypeDefinition(_errorClassName, _library)
|
| +]);
|
| +bool _isThrowable(DartType type) {
|
| + return type.isDynamic ||
|
| + DartTypeUtilities.implementsAnyInterface(type, _interfaceDefinitions);
|
| +}
|
| +class OnlyThrowErrors extends LintRule {
|
| _Visitor _visitor;
|
|
|
| - OnlyThrowError() : super(
|
| - name: 'only_throw_error',
|
| - description: _desc,
|
| - details: _details,
|
| - group: Group.style,
|
| - maturity: Maturity.experimental) {
|
| + OnlyThrowErrors()
|
| + : super(
|
| + name: 'only_throw_errors',
|
| + description: _desc,
|
| + details: _details,
|
| + group: Group.style,
|
| + maturity: Maturity.experimental) {
|
| _visitor = new _Visitor(this);
|
| }
|
|
|
| @@ -68,17 +85,3 @@ class _Visitor extends SimpleAstVisitor {
|
| }
|
| }
|
| }
|
| -
|
| -const _library = 'dart.core';
|
| -const _errorClassName = 'Error';
|
| -const _exceptionClassName = 'Exception';
|
| -final LinkedHashSet<InterfaceTypeDefinition> _interfaceDefinitions =
|
| -new LinkedHashSet<InterfaceTypeDefinition>.from([
|
| - new InterfaceTypeDefinition(_exceptionClassName, _library),
|
| - new InterfaceTypeDefinition(_errorClassName, _library)
|
| -]);
|
| -
|
| -bool _isThrowable(DartType type) {
|
| - return type.isDynamic ||
|
| - DartTypeUtilities.implementsAnyInterface(type, _interfaceDefinitions);
|
| -}
|
|
|