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 |