| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analyzer.src.generated.utilities_dart; | 5 library analyzer.src.generated.utilities_dart; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart' show AnnotatedNode, Comment; | 7 import 'package:analyzer/dart/ast/ast.dart' show AnnotatedNode, Comment; |
| 8 import 'package:analyzer/dart/ast/token.dart' show Token; | 8 import 'package:analyzer/dart/ast/token.dart' show Token; |
| 9 import 'package:analyzer/exception/exception.dart'; | 9 import 'package:analyzer/exception/exception.dart'; |
| 10 import 'package:analyzer/src/dart/element/element.dart' show ElementImpl; | 10 import 'package:analyzer/src/dart/element/element.dart' show ElementImpl; |
| 11 import 'package:analyzer/src/generated/java_core.dart'; | |
| 12 import 'package:analyzer/src/generated/source.dart'; | 11 import 'package:analyzer/src/generated/source.dart'; |
| 13 import 'package:analyzer/src/util/fast_uri.dart'; | 12 import 'package:analyzer/src/util/fast_uri.dart'; |
| 14 | 13 |
| 15 /** | 14 /** |
| 16 * Resolve the [containedUri] against [baseUri] using Dart rules. | 15 * Resolve the [containedUri] against [baseUri] using Dart rules. |
| 17 * | 16 * |
| 18 * This function behaves similarly to [Uri.resolveUri], except that it properly | 17 * This function behaves similarly to [Uri.resolveUri], except that it properly |
| 19 * handles situations like the following: | 18 * handles situations like the following: |
| 20 * | 19 * |
| 21 * resolveRelativeUri(dart:core, bool.dart) -> dart:core/bool.dart | 20 * resolveRelativeUri(dart:core, bool.dart) -> dart:core/bool.dart |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 | 75 |
| 77 for (int i = 0; i < uri2Segments.length; ++i) { | 76 for (int i = 0; i < uri2Segments.length; ++i) { |
| 78 if (uri2Segments[i] != uri1Segments[i]) { | 77 if (uri2Segments[i] != uri1Segments[i]) { |
| 79 return false; | 78 return false; |
| 80 } | 79 } |
| 81 } | 80 } |
| 82 return true; | 81 return true; |
| 83 } | 82 } |
| 84 | 83 |
| 85 /** | 84 /** |
| 86 * The enumeration `ParameterKind` defines the different kinds of parameters. Th
ere are two | 85 * The kinds of a parameter. There are two basic kinds of parameters: required |
| 87 * basic kinds of parameters: required and optional. Optional parameters are fur
ther divided into | 86 * and optional. Optional parameters are further divided into two kinds: |
| 88 * two kinds: positional optional and named optional. | 87 * positional optional and named optional. |
| 89 */ | 88 */ |
| 90 class ParameterKind extends Enum<ParameterKind> { | 89 class ParameterKind implements Comparable<ParameterKind> { |
| 91 static const ParameterKind REQUIRED = | 90 static const ParameterKind REQUIRED = |
| 92 const ParameterKind('REQUIRED', 0, false); | 91 const ParameterKind('REQUIRED', 0, false); |
| 93 | 92 |
| 94 static const ParameterKind POSITIONAL = | 93 static const ParameterKind POSITIONAL = |
| 95 const ParameterKind('POSITIONAL', 1, true); | 94 const ParameterKind('POSITIONAL', 1, true); |
| 96 | 95 |
| 97 static const ParameterKind NAMED = const ParameterKind('NAMED', 2, true); | 96 static const ParameterKind NAMED = const ParameterKind('NAMED', 2, true); |
| 98 | 97 |
| 99 static const List<ParameterKind> values = const [REQUIRED, POSITIONAL, NAMED]; | 98 static const List<ParameterKind> values = const [REQUIRED, POSITIONAL, NAMED]; |
| 100 | 99 |
| 101 /** | 100 /** |
| 101 * The name of this parameter. |
| 102 */ |
| 103 final String name; |
| 104 |
| 105 /** |
| 106 * The ordinal value of the parameter. |
| 107 */ |
| 108 final int ordinal; |
| 109 |
| 110 /** |
| 102 * A flag indicating whether this is an optional parameter. | 111 * A flag indicating whether this is an optional parameter. |
| 103 */ | 112 */ |
| 104 final bool isOptional; | 113 final bool isOptional; |
| 105 | 114 |
| 106 /** | 115 /** |
| 107 * Initialize a newly created kind with the given state. | 116 * Initialize a newly created kind with the given state. |
| 108 * | |
| 109 * @param isOptional `true` if this is an optional parameter | |
| 110 */ | 117 */ |
| 111 const ParameterKind(String name, int ordinal, this.isOptional) | 118 const ParameterKind(this.name, this.ordinal, this.isOptional); |
| 112 : super(name, ordinal); | 119 |
| 120 @override |
| 121 int get hashCode => ordinal; |
| 122 |
| 123 @override |
| 124 int compareTo(ParameterKind other) => ordinal - other.ordinal; |
| 125 |
| 126 @override |
| 127 String toString() => name; |
| 113 } | 128 } |
| OLD | NEW |