| Index: pkg/analyzer/lib/src/generated/utilities_dart.dart
|
| diff --git a/pkg/analyzer/lib/src/generated/utilities_dart.dart b/pkg/analyzer/lib/src/generated/utilities_dart.dart
|
| index 26456a59ef81501bbf892f7022f4294b8838f401..cd9753ca4772af05c154dc5c8a1a0504dae58403 100644
|
| --- a/pkg/analyzer/lib/src/generated/utilities_dart.dart
|
| +++ b/pkg/analyzer/lib/src/generated/utilities_dart.dart
|
| @@ -38,3 +38,27 @@ class ParameterKind extends Enum<ParameterKind> {
|
| const ParameterKind(String name, int ordinal, this.isOptional)
|
| : super(name, ordinal);
|
| }
|
| +
|
| +/**
|
| + * Check whether [uri1] starts with (or 'is prefixed by') [uri2] by checking
|
| + * path segments.
|
| + */
|
| +bool startsWith(Uri uri1, Uri uri2) {
|
| + List<String> uri1Segments = uri1.pathSegments;
|
| + List<String> uri2Segments = uri2.pathSegments.toList();
|
| + // Trim trailing empty segments ('/foo/' => ['foo', ''])
|
| + if (uri2Segments.last == '') {
|
| + uri2Segments.removeLast();
|
| + }
|
| +
|
| + if (uri2Segments.length > uri1Segments.length) {
|
| + return false;
|
| + }
|
| +
|
| + for (int i = 0; i < uri2Segments.length; ++i) {
|
| + if (uri2Segments[i] != uri1Segments[i]) {
|
| + return false;
|
| + }
|
| + }
|
| + return true;
|
| +}
|
|
|