Skip to content

Commit

Permalink
fix for avoid_relative_lib_imports
Browse files Browse the repository at this point in the history
Change-Id: Ib7ffd8cab3d1f0b22ebb9ad2d284c65d3194de15
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116484
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
  • Loading branch information
pq authored and commit-bot@chromium.org committed Sep 10, 2019
1 parent 62f78a7 commit 9a2e280
Show file tree
Hide file tree
Showing 9 changed files with 294 additions and 225 deletions.
4 changes: 1 addition & 3 deletions pkg/analysis_server/lib/src/services/correction/assist.dart
Expand Up @@ -104,9 +104,7 @@ class DartAssistKind {
static const CONVERT_TO_PACKAGE_IMPORT = const AssistKind(
'dart.assist.convert.relativeToPackageImport',
30,
"Convert to 'package:' import",
// todo (pq): migrate to (conditional) fix
associatedErrorCodes: <String>['avoid_relative_lib_imports']);
"Convert to 'package:' import");
static const CONVERT_TO_SET_LITERAL = const AssistKind(
'dart.assist.convert.toSetLiteral', 30, "Convert to set literal",
// todo (brianwilkerson): unify w/ fix
Expand Down
Expand Up @@ -101,7 +101,11 @@ class AssistProcessor extends BaseProcessor {
)) {
await _addProposal_convertToNullAware();
}
await _addProposal_convertToPackageImport();
if (!_containsErrorCode(
{LintNames.avoid_relative_lib_imports},
)) {
await _addProposal_convertToPackageImport();
}
await _addProposal_convertToSingleQuotedString();
await _addProposal_encapsulateField();
await _addProposal_exchangeOperands();
Expand Down Expand Up @@ -1310,45 +1314,9 @@ class AssistProcessor extends BaseProcessor {
}

Future<void> _addProposal_convertToPackageImport() async {
var node = this.node;
if (node is StringLiteral) {
node = node.parent;
}
if (node is ImportDirective) {
ImportDirective importDirective = node;
var uriSource = importDirective.uriSource;

// Ignore if invalid URI.
if (uriSource == null) {
return;
}

var importUri = uriSource.uri;
if (importUri.scheme != 'package') {
return;
}

// Don't offer to convert a 'package:' URI to itself.
try {
if (Uri.parse(importDirective.uriContent).scheme == 'package') {
return;
}
} on FormatException {
return;
}

var changeBuilder = _newDartChangeBuilder();
await changeBuilder.addFileEdit(file, (builder) {
builder.addSimpleReplacement(
range.node(importDirective.uri),
"'$importUri'",
);
});
_addAssistFromBuilder(
changeBuilder,
DartAssistKind.CONVERT_TO_PACKAGE_IMPORT,
);
}
final changeBuilder = await createBuilder_convertToPackageImport();
_addAssistFromBuilder(
changeBuilder, DartAssistKind.CONVERT_TO_PACKAGE_IMPORT);
}

Future<void> _addProposal_convertToSingleQuotedString() async {
Expand Down

0 comments on commit 9a2e280

Please sign in to comment.