Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: pkg/analysis_server/lib/src/services/correction/fix_internal.dart

Issue 750423002: Issue 21650. Fix linked positions added after insert code buffers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/correction/fix_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/services/correction/fix_internal.dart
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index 4c7a6feb2741c8cb69173e1b7545af531269ec87..e86a1ccd47f089aa5c1821bb4256c370aa19874d 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -296,7 +296,7 @@ class FixProcessor {
}
// insert source
_insertBuilder(sb);
- _addLinkedPosition("NAME", rf.rangeNode(node));
+ _addLinkedPosition("NAME", sb, rf.rangeNode(node));
// add proposal
_addFix(FixKind.CREATE_CLASS, [name]);
}
@@ -427,7 +427,7 @@ class FixProcessor {
// insert source
_insertBuilder(sb);
if (targetFile == file) {
- _addLinkedPosition("NAME", rf.rangeNode(name));
+ _addLinkedPosition("NAME", sb, rf.rangeNode(name));
}
// add proposal
_addFixToElement(
@@ -641,7 +641,7 @@ class FixProcessor {
_insertBuilder(sb);
// add linked positions
if (targetFile == file) {
- _addLinkedPosition3('NAME', sb, rf.rangeNode(node));
+ _addLinkedPosition('NAME', sb, rf.rangeNode(node));
}
// add proposal
_addFixToElement(FixKind.CREATE_FIELD, [name], targetClassElement);
@@ -751,7 +751,7 @@ class FixProcessor {
// insert source
_insertBuilder(sb);
// add linked positions
- _addLinkedPosition3('NAME', sb, rf.rangeNode(node));
+ _addLinkedPosition('NAME', sb, rf.rangeNode(node));
// add proposal
_addFix(FixKind.CREATE_LOCAL_VARIABLE, [name]);
}
@@ -1279,7 +1279,7 @@ class FixProcessor {
}
// insert source
_insertBuilder(sb);
- _addLinkedPosition3('NAME', sb, rf.rangeNode(node));
+ _addLinkedPosition('NAME', sb, rf.rangeNode(node));
// add proposal
_addFix(FixKind.CREATE_FUNCTION, [name]);
}
@@ -1384,7 +1384,7 @@ class FixProcessor {
_insertBuilder(sb);
// add linked positions
if (targetFile == file) {
- _addLinkedPosition3('NAME', sb, rf.rangeNode(node));
+ _addLinkedPosition('NAME', sb, rf.rangeNode(node));
}
// add proposal
_addFixToElement(FixKind.CREATE_METHOD, [name], targetElement);
@@ -1542,22 +1542,18 @@ class FixProcessor {
/**
* Adds a single linked position to [groupId].
*/
- void _addLinkedPosition(String groupId, SourceRange range) {
- Position position = new Position(file, range.offset);
- LinkedEditGroup group = _getLinkedPosition(groupId);
- group.addPosition(position, range.length);
- }
-
- /**
- * Adds a single linked position to [groupId].
- */
- void _addLinkedPosition3(String groupId, SourceBuilder sb,
- SourceRange range) {
- if (sb.offset < range.offset) {
+ void _addLinkedPosition(String groupId, SourceBuilder sb, SourceRange range) {
+ // prepare offset
+ int offset = range.offset;
+ if (sb.offset < offset) {
int delta = sb.length;
- range = range.getTranslated(delta);
+ offset += delta;
}
- _addLinkedPosition(groupId, range);
+ // prepare group
+ LinkedEditGroup group = _getLinkedPosition(groupId);
+ // add position
+ Position position = new Position(file, offset);
+ group.addPosition(position, range.length);
}
/**
@@ -1623,7 +1619,7 @@ class FixProcessor {
_insertBuilder(sb);
// add linked positions
if (targetSource == unitSource) {
- _addLinkedPosition3("NAME", sb, rf.rangeNode(node));
+ _addLinkedPosition("NAME", sb, rf.rangeNode(node));
}
}
@@ -2094,14 +2090,6 @@ class FixProcessor {
return <String>["arg${index}"];
}
-// /**
-// * Checks if [type] is not `null` and not `dynamic`, so it is worth adding
-// * into the source.
-// */
-// static bool _isInterestingType(DartType type) {
-// return type != null && !type.isDynamic;
-// }
-
/**
* Returns `true` if [node] is a type name.
*/
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/correction/fix_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698