Skip to content

Commit 1b9cc28

Browse files
scheglovCommit Queue
authored and
Commit Queue
committed
CQ. Make FileSource API, move to lib/source.
Change-Id: I981d3f0904917ada322ca06448f03ff33ae1f095 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/369360 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Samuel Rawlins <[email protected]>
1 parent fc4bcab commit 1b9cc28

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+145
-130
lines changed

pkg/analysis_server/lib/src/computer/import_elements_computer.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import 'package:analyzer/dart/analysis/results.dart';
77
import 'package:analyzer/dart/ast/ast.dart';
88
import 'package:analyzer/dart/element/element.dart';
99
import 'package:analyzer/file_system/file_system.dart';
10+
import 'package:analyzer/source/file_source.dart';
1011
import 'package:analyzer/source/source.dart';
1112
import 'package:analyzer/src/generated/source.dart';
12-
import 'package:analyzer/src/source/source_resource.dart';
1313
import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
1414
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1515
import 'package:analyzer_plugin/utilities/range_factory.dart';

pkg/analysis_server/lib/src/context_manager.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import 'package:analyzer/error/listener.dart';
1414
import 'package:analyzer/file_system/file_system.dart';
1515
import 'package:analyzer/file_system/overlay_file_system.dart';
1616
import 'package:analyzer/instrumentation/instrumentation.dart';
17+
import 'package:analyzer/source/file_source.dart';
1718
import 'package:analyzer/source/line_info.dart';
1819
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
1920
import 'package:analyzer/src/dart/analysis/byte_store.dart';
@@ -26,7 +27,6 @@ import 'package:analyzer/src/dart/analysis/unlinked_unit_store.dart';
2627
import 'package:analyzer/src/generated/sdk.dart';
2728
import 'package:analyzer/src/manifest/manifest_validator.dart';
2829
import 'package:analyzer/src/pubspec/pubspec_validator.dart';
29-
import 'package:analyzer/src/source/source_resource.dart';
3030
import 'package:analyzer/src/task/options.dart';
3131
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
3232
import 'package:analyzer/src/workspace/blaze.dart';

pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ import 'package:analysis_server_plugin/edit/fix/fix.dart';
1818
import 'package:analyzer/dart/analysis/results.dart';
1919
import 'package:analyzer/dart/analysis/session.dart';
2020
import 'package:analyzer/file_system/file_system.dart';
21+
import 'package:analyzer/source/file_source.dart';
2122
import 'package:analyzer/source/line_info.dart';
2223
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
2324
import 'package:analyzer/src/dart/analysis/results.dart' as engine;
2425
import 'package:analyzer/src/exception/exception.dart';
2526
import 'package:analyzer/src/generated/engine.dart';
2627
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
2728
import 'package:analyzer/src/pubspec/pubspec_validator.dart';
28-
import 'package:analyzer/src/source/source_resource.dart';
2929
import 'package:analyzer/src/task/options.dart';
3030
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
3131
import 'package:analyzer/src/util/file_paths.dart';

pkg/analysis_server/lib/src/lsp/handlers/code_actions/analysis_options.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import 'dart:async';
77
import 'package:analysis_server/lsp_protocol/protocol.dart';
88
import 'package:analysis_server/src/lsp/handlers/code_actions/abstract_code_actions_producer.dart';
99
import 'package:analysis_server/src/services/correction/fix/analysis_options/fix_generator.dart';
10+
import 'package:analyzer/source/file_source.dart';
1011
import 'package:analyzer/source/line_info.dart';
1112
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
1213
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
13-
import 'package:analyzer/src/source/source_resource.dart';
1414
import 'package:analyzer/src/task/options.dart';
1515
import 'package:analyzer/src/workspace/pub.dart';
1616
import 'package:yaml/yaml.dart';

pkg/analysis_server/lib/src/lsp/handlers/code_actions/pubspec.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import 'dart:async';
77
import 'package:analysis_server/lsp_protocol/protocol.dart';
88
import 'package:analysis_server/src/lsp/handlers/code_actions/abstract_code_actions_producer.dart';
99
import 'package:analysis_server/src/services/correction/fix/pubspec/fix_generator.dart';
10+
import 'package:analyzer/source/file_source.dart';
1011
import 'package:analyzer/source/line_info.dart';
1112
import 'package:analyzer/src/pubspec/pubspec_validator.dart';
12-
import 'package:analyzer/src/source/source_resource.dart';
1313
import 'package:yaml/yaml.dart';
1414

1515
/// Produces [CodeAction]s from Pubspec fixes.

pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import 'package:analyzer/exception/exception.dart';
2828
import 'package:analyzer/file_system/file_system.dart';
2929
import 'package:analyzer/instrumentation/service.dart';
3030
import 'package:analyzer/source/error_processor.dart';
31+
import 'package:analyzer/source/file_source.dart';
3132
import 'package:analyzer/source/source.dart';
3233
import 'package:analyzer/source/source_range.dart';
3334
import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -38,7 +39,6 @@ import 'package:analyzer/src/lint/linter_visitor.dart';
3839
import 'package:analyzer/src/lint/registry.dart';
3940
import 'package:analyzer/src/pubspec/pubspec_warning_code.dart';
4041
import 'package:analyzer/src/pubspec/validators/missing_dependency_validator.dart';
41-
import 'package:analyzer/src/source/source_resource.dart';
4242
import 'package:analyzer/src/string_source.dart';
4343
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
4444
import 'package:analyzer/src/util/performance/operation_performance.dart';

pkg/analysis_server/lib/src/services/correction/fix/data_driven/transform_set_manager.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import 'package:analysis_server/src/services/correction/fix/data_driven/transfor
77
import 'package:analyzer/dart/element/element.dart';
88
import 'package:analyzer/error/listener.dart';
99
import 'package:analyzer/file_system/file_system.dart';
10-
import 'package:analyzer/src/source/source_resource.dart';
10+
import 'package:analyzer/source/file_source.dart';
1111
import 'package:meta/meta.dart';
1212

1313
/// An object used to manage the transform sets.

pkg/analysis_server/test/src/services/correction/fix/analysis_options/test_support.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import 'package:analysis_server/src/services/correction/fix/analysis_options/fix_generator.dart';
66
import 'package:analysis_server_plugin/edit/fix/fix.dart';
77
import 'package:analyzer/error/error.dart';
8+
import 'package:analyzer/source/file_source.dart';
89
import 'package:analyzer/src/generated/source.dart';
910
import 'package:analyzer/src/lint/state.dart';
10-
import 'package:analyzer/src/source/source_resource.dart';
1111
import 'package:analyzer/src/task/options.dart';
1212
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
1313
import 'package:analyzer_plugin/protocol/protocol_common.dart'

pkg/analysis_server/test/src/services/correction/fix/pubspec/add_dependency_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analysis_server/src/services/correction/fix/pubspec/fix_kind.dart';
6+
import 'package:analyzer/source/file_source.dart';
67
import 'package:analyzer/src/pubspec/validators/missing_dependency_validator.dart';
7-
import 'package:analyzer/src/source/source_resource.dart';
88
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
99
import 'package:matcher/expect.dart';
1010
import 'package:test_reflective_loader/test_reflective_loader.dart';

pkg/analysis_server/test/src/services/correction/fix/pubspec/test_support.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import 'package:analysis_server/src/protocol_server.dart' show SourceEdit;
66
import 'package:analysis_server/src/services/correction/fix/pubspec/fix_generator.dart';
77
import 'package:analysis_server_plugin/edit/fix/fix.dart';
88
import 'package:analyzer/error/error.dart';
9+
import 'package:analyzer/source/file_source.dart';
910
import 'package:analyzer/src/pubspec/pubspec_validator.dart'
1011
as pubspec_validator;
11-
import 'package:analyzer/src/source/source_resource.dart';
1212
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
1313
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
1414
import 'package:test/test.dart';

pkg/analyzer/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
## 6.6.0-dev
22
* Stop exporting `src/file_system/file_system.dart`
33
from `file_system/file_system.dart`.
4+
* Deprecated `package:analyzer/src/source/source_resource.dart`,
5+
import `package:analyzer/source/file_source.dart` instead.
46

57
## 6.5.2
68
* Updated constraints `macros: '>=0.1.2-0 <0.1.3'`.

pkg/analyzer/lib/file_system/memory_file_system.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import 'dart:convert';
77
import 'dart:typed_data';
88

99
import 'package:analyzer/file_system/file_system.dart';
10+
import 'package:analyzer/source/file_source.dart';
1011
import 'package:analyzer/source/source.dart';
11-
import 'package:analyzer/src/source/source_resource.dart';
1212
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
1313
import 'package:meta/meta.dart';
1414
import 'package:path/path.dart' as pathos;

pkg/analyzer/lib/file_system/overlay_file_system.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import 'dart:convert';
66
import 'dart:typed_data';
77

88
import 'package:analyzer/file_system/file_system.dart';
9+
import 'package:analyzer/source/file_source.dart';
910
import 'package:analyzer/source/source.dart';
10-
import 'package:analyzer/src/source/source_resource.dart';
1111
import 'package:path/path.dart' as pathos;
1212
import 'package:watcher/watcher.dart';
1313

pkg/analyzer/lib/file_system/physical_file_system.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import 'dart:io' as io;
77
import 'dart:typed_data';
88

99
import 'package:analyzer/file_system/file_system.dart';
10+
import 'package:analyzer/source/file_source.dart';
1011
import 'package:analyzer/src/generated/source.dart';
11-
import 'package:analyzer/src/source/source_resource.dart';
1212
import 'package:path/path.dart';
1313
import 'package:watcher/watcher.dart';
1414

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
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.
4+
5+
import 'dart:collection';
6+
7+
import 'package:analyzer/file_system/file_system.dart';
8+
import 'package:analyzer/source/source.dart';
9+
import 'package:analyzer/src/generated/engine.dart';
10+
import 'package:analyzer/src/generated/source.dart';
11+
12+
/// A function that can translate the contents of files on disk as they are
13+
/// read. This is now obsolete, but supported the ability of server to deal with
14+
/// clients that convert all text to an internal format.
15+
@Deprecated('We will remove reading source content')
16+
typedef FileReadMode = String Function(String s);
17+
18+
/// A source that represents a file.
19+
class FileSource extends Source {
20+
/// A function that changes the way that files are read off of disk.
21+
@Deprecated('We will remove reading source content')
22+
static FileReadMode fileReadMode = (String s) => s;
23+
24+
/// Map from encoded URI/filepath pair to a unique integer identifier. This
25+
/// identifier is used for equality tests and hash codes.
26+
///
27+
/// The URI and filepath are joined into a pair by separating them with an '@'
28+
/// character.
29+
static final Map<String, int> _idTable = HashMap<String, int>();
30+
31+
/// The URI from which this source was originally derived.
32+
@override
33+
final Uri uri;
34+
35+
/// The unique ID associated with this source.
36+
final int id;
37+
38+
/// The file represented by this source.
39+
final File file;
40+
41+
/// The cached absolute path of this source.
42+
String? _absolutePath;
43+
44+
/// Initialize a newly created source object to represent the given [file]. If
45+
/// a [uri] is given, then it will be used as the URI from which the source
46+
/// was derived, otherwise a `file:` URI will be created based on the [file].
47+
FileSource(this.file, [Uri? uri])
48+
: uri = uri ?? file.toUri(),
49+
id = _idTable.putIfAbsent(
50+
'${uri ?? file.toUri()}@${file.path}', () => _idTable.length);
51+
52+
@override
53+
TimestampedData<String> get contents {
54+
return contentsFromFile;
55+
}
56+
57+
/// Get and return the contents and timestamp of the underlying file.
58+
///
59+
/// Clients should consider using the method [AnalysisContext.getContents]
60+
/// because contexts can have local overrides of the content of a source that
61+
/// the source is not aware of.
62+
///
63+
/// Throws an exception if the contents of this source could not be accessed.
64+
/// See [contents].
65+
TimestampedData<String> get contentsFromFile {
66+
return TimestampedData<String>(
67+
file.modificationStamp,
68+
// ignore:deprecated_member_use_from_same_package
69+
fileReadMode(file.readAsStringSync()),
70+
);
71+
}
72+
73+
@override
74+
String get fullName => _absolutePath ??= file.path;
75+
76+
@override
77+
int get hashCode => uri.hashCode;
78+
79+
@override
80+
String get shortName => file.shortName;
81+
82+
@override
83+
bool operator ==(Object other) {
84+
if (other is FileSource) {
85+
return id == other.id;
86+
} else if (other is Source) {
87+
return uri == other.uri;
88+
}
89+
return false;
90+
}
91+
92+
@override
93+
bool exists() => file.exists;
94+
95+
@override
96+
String toString() {
97+
return file.path;
98+
}
99+
}

pkg/analyzer/lib/src/analysis_options/analysis_options_provider.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analyzer/file_system/file_system.dart';
6+
import 'package:analyzer/source/file_source.dart';
67
import 'package:analyzer/source/source.dart';
78
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
8-
import 'package:analyzer/src/source/source_resource.dart';
99
import 'package:analyzer/src/task/options.dart';
1010
import 'package:analyzer/src/util/file_paths.dart' as file_paths;
1111
import 'package:analyzer/src/util/yaml.dart';

pkg/analyzer/lib/src/dart/analysis/file_state.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import 'package:analyzer/dart/ast/token.dart';
1212
import 'package:analyzer/dart/element/element.dart';
1313
import 'package:analyzer/error/listener.dart';
1414
import 'package:analyzer/file_system/file_system.dart';
15+
import 'package:analyzer/source/file_source.dart';
1516
import 'package:analyzer/source/line_info.dart';
1617
import 'package:analyzer/source/source.dart';
1718
import 'package:analyzer/src/dart/analysis/analysis_options_map.dart';
@@ -32,7 +33,6 @@ import 'package:analyzer/src/exception/exception.dart';
3233
import 'package:analyzer/src/generated/engine.dart';
3334
import 'package:analyzer/src/generated/parser.dart';
3435
import 'package:analyzer/src/generated/source.dart' show SourceFactory;
35-
import 'package:analyzer/src/source/source_resource.dart';
3636
import 'package:analyzer/src/summary/api_signature.dart';
3737
import 'package:analyzer/src/summary/package_bundle_reader.dart';
3838
import 'package:analyzer/src/summary2/informative_data.dart';

pkg/analyzer/lib/src/dart/sdk/sdk.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ import 'package:analyzer/dart/analysis/utilities.dart';
1010
import 'package:analyzer/exception/exception.dart';
1111
import 'package:analyzer/file_system/file_system.dart';
1212
import 'package:analyzer/file_system/memory_file_system.dart';
13+
import 'package:analyzer/source/file_source.dart';
1314
import 'package:analyzer/src/dart/sdk/sdk_utils.dart';
1415
import 'package:analyzer/src/generated/engine.dart';
1516
import 'package:analyzer/src/generated/java_engine_io.dart';
1617
import 'package:analyzer/src/generated/sdk.dart';
1718
import 'package:analyzer/src/generated/source.dart';
18-
import 'package:analyzer/src/source/source_resource.dart';
1919
import 'package:analyzer/src/utilities/uri_cache.dart';
2020
import 'package:pub_semver/pub_semver.dart';
2121
import 'package:yaml/yaml.dart';

pkg/analyzer/lib/src/file_system/file_system.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analyzer/file_system/file_system.dart';
6+
import 'package:analyzer/source/file_source.dart';
67
import 'package:analyzer/source/source.dart';
78
import 'package:analyzer/src/generated/source.dart' show UriResolver;
8-
import 'package:analyzer/src/source/source_resource.dart';
99
import 'package:analyzer/src/util/uri.dart';
1010

1111
/// A [UriResolver] for [Resource]s.

pkg/analyzer/lib/src/lint/analysis.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:analyzer/dart/analysis/results.dart';
88
import 'package:analyzer/file_system/file_system.dart';
99
import 'package:analyzer/file_system/physical_file_system.dart';
1010
import 'package:analyzer/instrumentation/instrumentation.dart';
11+
import 'package:analyzer/source/file_source.dart';
1112
import 'package:analyzer/source/source.dart';
1213
import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
1314
import 'package:analyzer/src/analysis_options/apply_options.dart';
@@ -16,7 +17,6 @@ import 'package:analyzer/src/generated/engine.dart';
1617
import 'package:analyzer/src/generated/sdk.dart';
1718
import 'package:analyzer/src/lint/io.dart';
1819
import 'package:analyzer/src/lint/linter.dart';
19-
import 'package:analyzer/src/source/source_resource.dart';
2020

2121
AnalysisOptionsProvider _optionsProvider = AnalysisOptionsProvider();
2222

pkg/analyzer/lib/src/lint/pub.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import 'dart:collection';
66

77
import 'package:analyzer/file_system/file_system.dart';
88
import 'package:analyzer/file_system/physical_file_system.dart';
9+
import 'package:analyzer/source/file_source.dart';
910
import 'package:analyzer/source/source.dart';
10-
import 'package:analyzer/src/source/source_resource.dart';
1111
import 'package:source_span/source_span.dart';
1212
import 'package:yaml/yaml.dart';
1313

pkg/analyzer/lib/src/source/package_map_resolver.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analyzer/file_system/file_system.dart';
6+
import 'package:analyzer/source/file_source.dart';
67
import 'package:analyzer/source/source.dart';
78
import 'package:analyzer/src/generated/source.dart' show UriResolver;
8-
import 'package:analyzer/src/source/source_resource.dart';
99
import 'package:analyzer/src/util/asserts.dart' as asserts;
1010
import 'package:analyzer/src/utilities/uri_cache.dart';
1111
import 'package:path/path.dart' as pathos;

0 commit comments

Comments
 (0)