mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 01:45:06 +00:00
Remove timeStamp from the ChangeBuilder API
R=scheglov@google.com Review-Url: https://codereview.chromium.org/2962223002 .
This commit is contained in:
parent
e2037dc9d1
commit
d1bb233f52
|
@ -280,7 +280,6 @@ class PostfixCompletionProcessor {
|
|||
final PostfixCompletionContext completionContext;
|
||||
final AnalysisContext analysisContext;
|
||||
final CorrectionUtils utils;
|
||||
int fileStamp;
|
||||
AstNode node;
|
||||
PostfixCompletion completion;
|
||||
SourceChange change = new SourceChange('postfix-completion');
|
||||
|
@ -291,9 +290,7 @@ class PostfixCompletionProcessor {
|
|||
|
||||
PostfixCompletionProcessor(this.completionContext)
|
||||
: analysisContext = completionContext.unitElement.context,
|
||||
utils = new CorrectionUtils(completionContext.unit) {
|
||||
fileStamp = _modificationStamp(file);
|
||||
}
|
||||
utils = new CorrectionUtils(completionContext.unit);
|
||||
|
||||
AnalysisDriver get driver => completionContext.driver;
|
||||
|
||||
|
@ -320,11 +317,6 @@ class PostfixCompletionProcessor {
|
|||
CompilationUnitElement get unitElement => completionContext.unitElement;
|
||||
|
||||
Future<PostfixCompletion> compute() async {
|
||||
// If the source was changed between the constructor and running
|
||||
// this asynchronous method, it is not safe to use the unit.
|
||||
if (_modificationStamp(file) != fileStamp) {
|
||||
return NO_COMPLETION;
|
||||
}
|
||||
node = _selectedNode();
|
||||
if (node == null) {
|
||||
return NO_COMPLETION;
|
||||
|
@ -342,8 +334,7 @@ class PostfixCompletionProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(expr), (DartEditBuilder builder) {
|
||||
String newSrc = sourcer(expr);
|
||||
if (newSrc == null) {
|
||||
|
@ -377,8 +368,7 @@ class PostfixCompletionProcessor {
|
|||
return null;
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// Embed the full line(s) of the statement in the try block.
|
||||
var startLine = lineInfo.getLocation(stmt.offset).lineNumber - 1;
|
||||
var endLine = lineInfo.getLocation(stmt.end).lineNumber - 1;
|
||||
|
@ -477,9 +467,6 @@ class PostfixCompletionProcessor {
|
|||
}
|
||||
|
||||
Future<bool> isApplicable() async {
|
||||
if (_modificationStamp(file) != fileStamp) {
|
||||
return false;
|
||||
}
|
||||
node = _selectedNode();
|
||||
if (node == null) {
|
||||
return false;
|
||||
|
@ -560,12 +547,6 @@ class PostfixCompletionProcessor {
|
|||
return expr;
|
||||
}
|
||||
|
||||
int _modificationStamp(String filePath) {
|
||||
// TODO(brianwilkerson) We have lost the ability for clients to know whether
|
||||
// it is safe to apply an edit.
|
||||
return driver.fsState.getFileForPath(filePath).exists ? 0 : -1;
|
||||
}
|
||||
|
||||
AstNode _selectedNode({int at: null}) =>
|
||||
new NodeLocator(at == null ? selectionOffset : at).searchWithin(unit);
|
||||
|
||||
|
|
|
@ -45,7 +45,6 @@ class AssistProcessor {
|
|||
|
||||
Source source;
|
||||
String file;
|
||||
int fileStamp;
|
||||
|
||||
CompilationUnit unit;
|
||||
CompilationUnitElement unitElement;
|
||||
|
@ -73,7 +72,6 @@ class AssistProcessor {
|
|||
// source
|
||||
source = dartContext.source;
|
||||
file = dartContext.source.fullName;
|
||||
fileStamp = _modificationStamp(file);
|
||||
// unit
|
||||
unit = dartContext.unit;
|
||||
unitElement = dartContext.unit.element;
|
||||
|
@ -102,12 +100,6 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
Future<List<Assist>> compute() async {
|
||||
// If the source was changed between the constructor and running
|
||||
// this asynchronous method, it is not safe to use the unit.
|
||||
if (_modificationStamp(file) != fileStamp) {
|
||||
return const <Assist>[];
|
||||
}
|
||||
|
||||
try {
|
||||
utils = new CorrectionUtils(unit);
|
||||
} catch (e) {
|
||||
|
@ -238,8 +230,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
Token keyword = declaredIdentifier.keyword;
|
||||
if (keyword.keyword == Keyword.VAR) {
|
||||
builder.addSimpleReplacement(range.token(keyword), typeSource);
|
||||
|
@ -287,8 +278,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(name.offset, '$typeSource ');
|
||||
builder.importLibraries(librariesToImport);
|
||||
});
|
||||
|
@ -347,8 +337,7 @@ class AssistProcessor {
|
|||
if (unitLibraryFile == file) {
|
||||
// TODO(brianwilkerson) Make ChangeBuilder merge multiple edits to the
|
||||
// same file so that only the else block is necessary.
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
Token keyword = declarationList.keyword;
|
||||
if (keyword?.keyword == Keyword.VAR) {
|
||||
builder.addSimpleReplacement(range.token(keyword), typeSource);
|
||||
|
@ -358,8 +347,7 @@ class AssistProcessor {
|
|||
builder.importLibraries(librariesToImport);
|
||||
});
|
||||
} else {
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
Token keyword = declarationList.keyword;
|
||||
if (keyword?.keyword == Keyword.VAR) {
|
||||
builder.addSimpleReplacement(range.token(keyword), typeSource);
|
||||
|
@ -367,9 +355,8 @@ class AssistProcessor {
|
|||
builder.addSimpleInsertion(variable.offset, '$typeSource ');
|
||||
}
|
||||
});
|
||||
await changeBuilder
|
||||
.addFileEdit(unitLibraryFile, _modificationStamp(unitLibraryFile),
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(unitLibraryFile,
|
||||
(DartFileEditBuilder builder) {
|
||||
builder.importLibraries(librariesToImport);
|
||||
});
|
||||
}
|
||||
|
@ -415,8 +402,7 @@ class AssistProcessor {
|
|||
|
||||
if (suggestions.isNotEmpty) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(offset, (DartEditBuilder builder) {
|
||||
builder.write('var ');
|
||||
builder.addSimpleLinkedEdit('NAME', suggestions[0],
|
||||
|
@ -445,8 +431,7 @@ class AssistProcessor {
|
|||
String prefix = utils.getNodePrefix(comment);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(comment), (DartEditBuilder builder) {
|
||||
builder.writeln('/**');
|
||||
for (Token token in comment.tokens) {
|
||||
|
@ -510,8 +495,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(comment), (DartEditBuilder builder) {
|
||||
for (String newLine in newLines) {
|
||||
builder.write(newLine);
|
||||
|
@ -558,8 +542,7 @@ class AssistProcessor {
|
|||
return;
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
_convertFlutterChildToChildren(childArg, namedExp, eol, utils.getNodeText,
|
||||
utils.getLinePrefix, utils.getIndent, utils.getText, builder);
|
||||
});
|
||||
|
@ -628,8 +611,7 @@ class AssistProcessor {
|
|||
code += ';';
|
||||
SourceRange replacementRange = range.startEnd(beginNodeToReplace, getter);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(replacementRange, code);
|
||||
});
|
||||
_addAssistFromBuilder(
|
||||
|
@ -680,8 +662,7 @@ class AssistProcessor {
|
|||
SourceRange replacementRange =
|
||||
range.startEnd(fieldList.keyword, fieldDeclaration);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(replacementRange, code);
|
||||
});
|
||||
_addAssistFromBuilder(changeBuilder, DartAssistKind.CONVERT_INTO_GETTER);
|
||||
|
@ -702,8 +683,7 @@ class AssistProcessor {
|
|||
String indent = utils.getIndent(1);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(body), (DartEditBuilder builder) {
|
||||
if (body.isAsynchronous) {
|
||||
builder.write('async ');
|
||||
|
@ -749,8 +729,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(body), (DartEditBuilder builder) {
|
||||
if (body.isAsynchronous) {
|
||||
builder.write('async ');
|
||||
|
@ -836,8 +815,7 @@ class AssistProcessor {
|
|||
String fieldName = parameterInitializer.fieldName.name;
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// replace parameter
|
||||
builder.addSimpleReplacement(range.node(parameter), 'this.$fieldName');
|
||||
// remove initializer
|
||||
|
@ -927,8 +905,7 @@ class AssistProcessor {
|
|||
int firstBlockLine = utils.getLineContentEnd(body.leftBracket.end);
|
||||
// add change
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// TODO(brianwilkerson) Create linked positions for the loop variable.
|
||||
builder.addSimpleReplacement(
|
||||
range.startEnd(forEachStatement, forEachStatement.rightParenthesis),
|
||||
|
@ -975,8 +952,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
if (getExpressionParentPrecedence(prefExpression) >=
|
||||
TokenClass.RELATIONAL_OPERATOR.precedence) {
|
||||
builder.addDeletion(range.token(prefExpression.operator));
|
||||
|
@ -1027,8 +1003,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
if (getExpressionParentPrecedence(prefExpression) >=
|
||||
TokenClass.RELATIONAL_OPERATOR.precedence) {
|
||||
builder.addDeletion(range.token(prefExpression.operator));
|
||||
|
@ -1095,8 +1070,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(
|
||||
range.startStart(prefixExpression, prefixExpression.operand));
|
||||
builder.addSimpleReplacement(range.node(isEmptyIdentifier), 'isNotEmpty');
|
||||
|
@ -1121,8 +1095,7 @@ class AssistProcessor {
|
|||
String typeCode = utils.getTypeSource(type, librariesToImport);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// replace parameter
|
||||
if (type.isDynamic) {
|
||||
builder.addSimpleReplacement(range.node(parameter), name);
|
||||
|
@ -1188,8 +1161,7 @@ class AssistProcessor {
|
|||
return;
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// rename field
|
||||
builder.addSimpleReplacement(range.node(nameNode), '_$name');
|
||||
// update references in constructors
|
||||
|
@ -1265,8 +1237,7 @@ class AssistProcessor {
|
|||
newOperator = '<=';
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(leftRange, _getRangeText(rightRange));
|
||||
builder.addSimpleReplacement(rightRange, _getRangeText(leftRange));
|
||||
// Optionally replace the operator.
|
||||
|
@ -1313,8 +1284,7 @@ class AssistProcessor {
|
|||
return;
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
String showCombinator = ' show ${referencedNames.join(', ')}';
|
||||
builder.addSimpleInsertion(importDirective.end - 1, showCombinator);
|
||||
});
|
||||
|
@ -1373,8 +1343,7 @@ class AssistProcessor {
|
|||
|
||||
if (suggestions.isNotEmpty) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(offset, (DartEditBuilder builder) {
|
||||
builder.write(eol + prefix + statementPrefix);
|
||||
builder.write(castTypeCode);
|
||||
|
@ -1411,8 +1380,7 @@ class AssistProcessor {
|
|||
String elseSource = _getNodeText(elseStatement);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.node(condition), invertedCondition);
|
||||
builder.addSimpleReplacement(range.node(thenStatement), elseSource);
|
||||
builder.addSimpleReplacement(range.node(elseStatement), thenSource);
|
||||
|
@ -1473,8 +1441,7 @@ class AssistProcessor {
|
|||
String newSource = utils.indentSourceLeftRight(oldSource, false);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.node(targetIfStatement),
|
||||
'if ($condition) {$eol$newSource$prefix}');
|
||||
});
|
||||
|
@ -1538,8 +1505,7 @@ class AssistProcessor {
|
|||
String newSource = utils.indentSourceLeftRight(oldSource, false);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.node(outerIfStatement),
|
||||
'if ($condition) {$eol$newSource$prefix}');
|
||||
});
|
||||
|
@ -1609,8 +1575,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
range.endStart(declNode, assignExpression.operator), ' ');
|
||||
});
|
||||
|
@ -1673,8 +1638,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
range.endStart(decl.name, assignExpression.operator), ' ');
|
||||
});
|
||||
|
@ -1777,8 +1741,7 @@ class AssistProcessor {
|
|||
// add edit
|
||||
Token keyword = declarationList.keyword;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
SourceRange typeRange = range.startStart(typeNode, firstVariable);
|
||||
if (keyword != null && keyword.lexeme != 'var') {
|
||||
builder.addSimpleReplacement(typeRange, '');
|
||||
|
@ -1810,8 +1773,7 @@ class AssistProcessor {
|
|||
String indentList = '$indentOld${utils.getIndent(2)}';
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(node), (DartEditBuilder builder) {
|
||||
builder.write('[');
|
||||
builder.write(eol);
|
||||
|
@ -1847,8 +1809,7 @@ class AssistProcessor {
|
|||
String newExprSrc = utils.getNodeText(newExpr);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(newExpr), (DartEditBuilder builder) {
|
||||
builder.write('new ');
|
||||
builder.addSimpleLinkedEdit('WIDGET', 'widget');
|
||||
|
@ -1929,8 +1890,7 @@ class AssistProcessor {
|
|||
|
||||
if (inVariable || inAssignment || inReturn) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// Type v = Conditional;
|
||||
if (inVariable) {
|
||||
VariableDeclaration variable =
|
||||
|
@ -2019,8 +1979,7 @@ class AssistProcessor {
|
|||
|
||||
if (hasReturnStatements || hasExpressionStatements) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// returns
|
||||
if (hasReturnStatements) {
|
||||
String conditionSrc = _getNodeText(ifStatement.condition);
|
||||
|
@ -2104,8 +2063,7 @@ class AssistProcessor {
|
|||
}
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// remove "&& rightCondition"
|
||||
builder
|
||||
.addDeletion(range.endEnd(binaryExpression.leftOperand, condition));
|
||||
|
@ -2165,8 +2123,7 @@ class AssistProcessor {
|
|||
return;
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// remove initializer value
|
||||
builder.addDeletion(range.endStart(variable.name, statement.semicolon));
|
||||
// add assignment statement
|
||||
|
@ -2215,8 +2172,7 @@ class AssistProcessor {
|
|||
// "block"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(statementsRange.offset, '$indentOld{$eol');
|
||||
builder.addSimpleReplacement(
|
||||
statementsRange,
|
||||
|
@ -2230,8 +2186,7 @@ class AssistProcessor {
|
|||
// "if"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(statementsRange, (DartEditBuilder builder) {
|
||||
builder.write(indentOld);
|
||||
builder.write('if (');
|
||||
|
@ -2250,8 +2205,7 @@ class AssistProcessor {
|
|||
// "while"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(statementsRange, (DartEditBuilder builder) {
|
||||
builder.write(indentOld);
|
||||
builder.write('while (');
|
||||
|
@ -2270,8 +2224,7 @@ class AssistProcessor {
|
|||
// "for-in"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(statementsRange, (DartEditBuilder builder) {
|
||||
builder.write(indentOld);
|
||||
builder.write('for (var ');
|
||||
|
@ -2292,8 +2245,7 @@ class AssistProcessor {
|
|||
// "for"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(statementsRange, (DartEditBuilder builder) {
|
||||
builder.write(indentOld);
|
||||
builder.write('for (var ');
|
||||
|
@ -2318,8 +2270,7 @@ class AssistProcessor {
|
|||
// "do-while"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(statementsRange, (DartEditBuilder builder) {
|
||||
builder.write(indentOld);
|
||||
builder.write('do {');
|
||||
|
@ -2339,8 +2290,7 @@ class AssistProcessor {
|
|||
// "try-catch"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(statementsRange, (DartEditBuilder builder) {
|
||||
builder.write(indentOld);
|
||||
builder.write('try {');
|
||||
|
@ -2370,8 +2320,7 @@ class AssistProcessor {
|
|||
// "try-finally"
|
||||
{
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(statementsRange, (DartEditBuilder builder) {
|
||||
builder.write(indentOld);
|
||||
builder.write('try {');
|
||||
|
@ -2469,12 +2418,6 @@ class AssistProcessor {
|
|||
return utils.getRangeText(range);
|
||||
}
|
||||
|
||||
int _modificationStamp(String filePath) {
|
||||
// TODO(brianwilkerson) We have lost the ability for clients to know whether
|
||||
// it is safe to apply an edit.
|
||||
return driver.fsState.getFileForPath(filePath).exists ? 0 : -1;
|
||||
}
|
||||
|
||||
Position _newPosition(int offset) {
|
||||
return new Position(file, offset);
|
||||
}
|
||||
|
@ -2491,8 +2434,7 @@ class AssistProcessor {
|
|||
int lnOffset = lineInfo.getOffsetOfLine(currLn);
|
||||
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(exprGoingDown),
|
||||
(DartEditBuilder builder) {
|
||||
String argSrc =
|
||||
|
|
|
@ -106,7 +106,6 @@ class FixProcessor {
|
|||
AnalysisDriver driver;
|
||||
|
||||
String file;
|
||||
int fileStamp;
|
||||
CompilationUnitElement unitElement;
|
||||
Source unitSource;
|
||||
LibraryElement unitLibraryElement;
|
||||
|
@ -137,7 +136,6 @@ class FixProcessor {
|
|||
unitSource = unitElement.source;
|
||||
// file
|
||||
file = unitSource.fullName;
|
||||
fileStamp = _modificationStamp(file);
|
||||
// library
|
||||
unitLibraryElement = unitElement.library;
|
||||
String unitLibraryPath = unitLibraryElement.source.fullName;
|
||||
|
@ -173,12 +171,6 @@ class FixProcessor {
|
|||
}
|
||||
|
||||
Future<List<Fix>> compute() async {
|
||||
// If the source was changed between the constructor and running
|
||||
// this asynchronous method, it is not safe to use the unit.
|
||||
if (_modificationStamp(unitSource.fullName) != fileStamp) {
|
||||
return const <Fix>[];
|
||||
}
|
||||
|
||||
try {
|
||||
utils = new CorrectionUtils(unit);
|
||||
} catch (e) {
|
||||
|
@ -455,8 +447,7 @@ class FixProcessor {
|
|||
if (body != null && body.keyword == null) {
|
||||
TypeProvider typeProvider = await this.typeProvider;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.convertFunctionFromSyncToAsync(body, typeProvider);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.ADD_ASYNC);
|
||||
|
@ -470,8 +461,7 @@ class FixProcessor {
|
|||
String prefix = utils.getIndent(1);
|
||||
String prefix2 = utils.getIndent(2);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(insertOffset, (DartEditBuilder builder) {
|
||||
builder.selectHere();
|
||||
builder.write(prefix);
|
||||
|
@ -544,9 +534,8 @@ class FixProcessor {
|
|||
Source targetSource = targetElement.source;
|
||||
String targetFile = targetSource.fullName;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder
|
||||
.addFileEdit(targetFile, targetSource.modificationStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(targetFile,
|
||||
(DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetOffset, (DartEditBuilder builder) {
|
||||
if (numRequired != 0) {
|
||||
builder.write(', ');
|
||||
|
@ -562,9 +551,8 @@ class FixProcessor {
|
|||
changeBuilder, DartFixKind.ADD_MISSING_PARAMETER_REQUIRED);
|
||||
if (optionalParameters.isEmpty) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder
|
||||
.addFileEdit(targetFile, targetSource.modificationStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(targetFile,
|
||||
(DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetOffset, (DartEditBuilder builder) {
|
||||
if (numRequired != 0) {
|
||||
builder.write(', ');
|
||||
|
@ -614,8 +602,7 @@ class FixProcessor {
|
|||
int offset =
|
||||
args.isEmpty ? argumentList.leftParenthesis.end : args.last.end;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(offset, (DartEditBuilder builder) {
|
||||
if (args.isNotEmpty) {
|
||||
builder.write(', ');
|
||||
|
@ -656,8 +643,7 @@ class FixProcessor {
|
|||
Position exitPosition = new Position(file, token.offset - 1);
|
||||
String indent = utils.getIndent(1);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
range.startLength(token, 0), '@override$eol$indent');
|
||||
});
|
||||
|
@ -667,8 +653,7 @@ class FixProcessor {
|
|||
|
||||
Future<Null> _addFix_boolInsteadOfBoolean() async {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.error(error), 'bool');
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REPLACE_BOOLEAN_WITH_BOOL);
|
||||
|
@ -678,8 +663,7 @@ class FixProcessor {
|
|||
AstNode node = coveredNode;
|
||||
if (node is Expression) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
AstNode parent = node.parent;
|
||||
while (parent != null) {
|
||||
if (parent is MethodInvocation && parent.target == node) {
|
||||
|
@ -710,7 +694,7 @@ class FixProcessor {
|
|||
DartType newType = initializer.bestType;
|
||||
if (newType is InterfaceType || newType is FunctionType) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
await changeBuilder.addFileEdit(file,
|
||||
(DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(typeNode),
|
||||
(DartEditBuilder builder) {
|
||||
|
@ -736,8 +720,7 @@ class FixProcessor {
|
|||
InstanceCreationExpression childArg = getChildWidget(namedExp, false);
|
||||
if (childArg != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
convertFlutterChildToChildren2(
|
||||
builder,
|
||||
childArg,
|
||||
|
@ -755,8 +738,7 @@ class FixProcessor {
|
|||
ListLiteral listArg = getChildList(namedExp);
|
||||
if (listArg != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(namedExp.offset + 'child'.length, 'ren');
|
||||
if (listArg.typeArguments == null) {
|
||||
builder.addSimpleInsertion(listArg.offset, '<Widget>');
|
||||
|
@ -801,7 +783,6 @@ class FixProcessor {
|
|||
String suffix = '';
|
||||
int offset = -1;
|
||||
String filePath;
|
||||
int modificationTime = 0;
|
||||
if (prefixElement == null) {
|
||||
targetUnit = unitElement;
|
||||
CompilationUnitMember enclosingMember =
|
||||
|
@ -811,7 +792,6 @@ class FixProcessor {
|
|||
}
|
||||
offset = enclosingMember.end;
|
||||
filePath = file;
|
||||
modificationTime = fileStamp;
|
||||
prefix = '$eol$eol';
|
||||
} else {
|
||||
for (ImportElement import in unitLibraryElement.imports) {
|
||||
|
@ -822,7 +802,6 @@ class FixProcessor {
|
|||
Source targetSource = targetUnit.source;
|
||||
offset = targetSource.contents.data.length;
|
||||
filePath = targetSource.fullName;
|
||||
modificationTime = targetSource.modificationStamp;
|
||||
prefix = '$eol';
|
||||
suffix = '$eol';
|
||||
break;
|
||||
|
@ -834,8 +813,7 @@ class FixProcessor {
|
|||
return;
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(filePath, modificationTime,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(filePath, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(offset, (DartEditBuilder builder) {
|
||||
builder.write(prefix);
|
||||
builder.writeClassDeclaration(name, nameGroupName: 'NAME');
|
||||
|
@ -877,8 +855,7 @@ class FixProcessor {
|
|||
ClassMemberLocation targetLocation =
|
||||
utils.prepareNewConstructorLocation(classDeclaration);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
builder.write(targetLocation.prefix);
|
||||
builder.writeConstructorDeclaration(classDeclaration.name.name,
|
||||
|
@ -921,8 +898,7 @@ class FixProcessor {
|
|||
Source targetSource = targetElement.source;
|
||||
String targetFile = targetSource.fullName;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(targetFile, targetSource.modificationStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(targetFile, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
builder.write(targetLocation.prefix);
|
||||
builder.writeConstructorDeclaration(targetElement.name,
|
||||
|
@ -975,8 +951,7 @@ class FixProcessor {
|
|||
utils.prepareNewConstructorLocation(targetTypeNode);
|
||||
String targetFile = targetElement.source.fullName;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
builder.write(targetLocation.prefix);
|
||||
builder.writeConstructorDeclaration(targetElement.name,
|
||||
|
@ -1026,8 +1001,7 @@ class FixProcessor {
|
|||
}
|
||||
String proposalName = _getConstructorProposalName(superConstructor);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(insertOffset, (DartEditBuilder builder) {
|
||||
builder.write(prefix);
|
||||
// add super constructor name
|
||||
|
@ -1085,8 +1059,7 @@ class FixProcessor {
|
|||
utils.prepareNewConstructorLocation(targetClassNode);
|
||||
String proposalName = _getConstructorProposalName(superConstructor);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
void writeParameters(bool includeType) {
|
||||
bool firstParameter = true;
|
||||
|
@ -1190,8 +1163,7 @@ class FixProcessor {
|
|||
Source targetSource = targetClassElement.source;
|
||||
String targetFile = targetSource.fullName;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(targetFile, targetSource.modificationStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(targetFile, (DartFileEditBuilder builder) {
|
||||
Expression fieldTypeNode = climbPropertyAccess(nameNode);
|
||||
DartType fieldType = _inferUndefinedExpressionType(fieldTypeNode);
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
|
@ -1229,8 +1201,7 @@ class FixProcessor {
|
|||
// Add proposal.
|
||||
//
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
DartType fieldType = parameter.type?.type;
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
builder.write(targetLocation.prefix);
|
||||
|
@ -1349,8 +1320,7 @@ class FixProcessor {
|
|||
Source targetSource = targetClassElement.source;
|
||||
String targetFile = targetSource.fullName;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(targetFile, targetSource.modificationStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(targetFile, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
Expression fieldTypeNode = climbPropertyAccess(nameNode);
|
||||
DartType fieldType = _inferUndefinedExpressionType(fieldTypeNode);
|
||||
|
@ -1377,7 +1347,7 @@ class FixProcessor {
|
|||
if (isAbsolute(file) && AnalysisEngine.isDartFileName(file)) {
|
||||
String libName = _computeLibraryName(file);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(source.fullName, -1,
|
||||
await changeBuilder.addFileEdit(source.fullName,
|
||||
(DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(0, 'library $libName;$eol$eol');
|
||||
});
|
||||
|
@ -1401,8 +1371,7 @@ class FixProcessor {
|
|||
assignment.operator.type == TokenType.EQ &&
|
||||
assignment.parent is ExpressionStatement) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(node.offset, 'var ');
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.CREATE_LOCAL_VARIABLE,
|
||||
|
@ -1427,8 +1396,7 @@ class FixProcessor {
|
|||
}
|
||||
// build variable declaration source
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(target.offset, (DartEditBuilder builder) {
|
||||
builder.writeLocalVariableDeclaration(name,
|
||||
nameGroupName: 'NAME', type: type, typeGroupName: 'TYPE');
|
||||
|
@ -1469,8 +1437,7 @@ class FixProcessor {
|
|||
int insertOffset = targetClass.end - 1;
|
||||
String prefix = utils.getIndent(1);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(insertOffset, (DartEditBuilder builder) {
|
||||
// TODO(brianwilkerson) Compare with builder.writeOverrideOfInheritedMember
|
||||
// The builder method doesn't merge getter/setter pairs into fields.
|
||||
|
@ -1589,8 +1556,7 @@ class FixProcessor {
|
|||
String prefix = utils.getIndent(1);
|
||||
int insertOffset = targetClass.end - 1;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(insertOffset, (DartEditBuilder builder) {
|
||||
builder.selectHere();
|
||||
// insert empty line before existing member
|
||||
|
@ -1615,7 +1581,7 @@ class FixProcessor {
|
|||
if (source != null) {
|
||||
String libName = unitLibraryElement.name;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(source.fullName, -1,
|
||||
await changeBuilder.addFileEdit(source.fullName,
|
||||
(DartFileEditBuilder builder) {
|
||||
// TODO(brianwilkerson) Consider using the URI rather than name
|
||||
builder.addSimpleInsertion(0, 'part of $libName;$eol$eol');
|
||||
|
@ -1631,8 +1597,7 @@ class FixProcessor {
|
|||
TypeAnnotation typeName = node.getAncestor((n) => n is TypeAnnotation);
|
||||
TypeProvider typeProvider = this.typeProvider;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.replaceTypeWithFuture(typeName, typeProvider);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REPLACE_RETURN_TYPE_FUTURE);
|
||||
|
@ -1641,8 +1606,7 @@ class FixProcessor {
|
|||
Future<Null> _addFix_importLibrary(FixKind kind, Source library) async {
|
||||
String libraryUri = getLibrarySourceUri(unitLibraryElement, library);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.importLibraries([library]);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, kind, args: [libraryUri]);
|
||||
|
@ -1674,8 +1638,7 @@ class FixProcessor {
|
|||
PrefixElement prefix = imp.prefix;
|
||||
if (prefix != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
range.startLength(node, 0), '${prefix.displayName}.');
|
||||
});
|
||||
|
@ -1704,10 +1667,8 @@ class FixProcessor {
|
|||
int offset = showCombinator.offset;
|
||||
int length = showCombinator.end - offset;
|
||||
String libraryFile = unitLibraryElement.source.fullName;
|
||||
int libraryStamp = unitLibraryElement.context
|
||||
.getModificationStamp(unitLibraryElement.source);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(libraryFile, libraryStamp,
|
||||
await changeBuilder.addFileEdit(libraryFile,
|
||||
(DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
new SourceRange(offset, length), newShowCode);
|
||||
|
@ -1791,8 +1752,7 @@ class FixProcessor {
|
|||
}
|
||||
int insertOffset = error.offset + error.length;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(insertOffset, ';');
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.INSERT_SEMICOLON);
|
||||
|
@ -1803,8 +1763,7 @@ class FixProcessor {
|
|||
if (coveredNode is IsExpression) {
|
||||
IsExpression isExpression = coveredNode as IsExpression;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder
|
||||
.addReplacement(range.endEnd(isExpression.expression, isExpression),
|
||||
(DartEditBuilder builder) {
|
||||
|
@ -1819,8 +1778,7 @@ class FixProcessor {
|
|||
if (coveredNode is IsExpression) {
|
||||
IsExpression isExpression = coveredNode as IsExpression;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder
|
||||
.addReplacement(range.endEnd(isExpression.expression, isExpression),
|
||||
(DartEditBuilder builder) {
|
||||
|
@ -1839,8 +1797,7 @@ class FixProcessor {
|
|||
}
|
||||
String className = enclosingClass.name.name;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(
|
||||
enclosingClass.classKeyword.offset, 'abstract ');
|
||||
});
|
||||
|
@ -1869,7 +1826,7 @@ class FixProcessor {
|
|||
if (declarationList.variables.length == 1 &&
|
||||
keywordToken.keyword == Keyword.FINAL) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
await changeBuilder.addFileEdit(file,
|
||||
(DartFileEditBuilder builder) {
|
||||
if (declarationList.type != null) {
|
||||
builder.addReplacement(
|
||||
|
@ -1893,8 +1850,7 @@ class FixProcessor {
|
|||
|
||||
Future<Null> _addFix_nonBoolCondition_addNotNull() async {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(error.offset + error.length, ' != null');
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.ADD_NE_NULL);
|
||||
|
@ -1905,8 +1861,7 @@ class FixProcessor {
|
|||
if (awaitExpression is AwaitExpression) {
|
||||
final awaitToken = awaitExpression.awaitKeyword;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.startStart(awaitToken, awaitToken.next));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_AWAIT);
|
||||
|
@ -1920,8 +1875,7 @@ class FixProcessor {
|
|||
if (parent is BinaryExpression) {
|
||||
if (parent.rightOperand == coveredNode) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.endEnd(parent.leftOperand, coveredNode));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_DEAD_CODE);
|
||||
|
@ -1939,8 +1893,7 @@ class FixProcessor {
|
|||
SourceRange rangeToRemove =
|
||||
utils.getLinesRangeStatements(statementsToRemove);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(rangeToRemove);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_DEAD_CODE);
|
||||
|
@ -1949,8 +1902,7 @@ class FixProcessor {
|
|||
SourceRange rangeToRemove =
|
||||
utils.getLinesRangeStatements(<Statement>[coveringNode]);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(rangeToRemove);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_DEAD_CODE);
|
||||
|
@ -1961,15 +1913,13 @@ class FixProcessor {
|
|||
EmptyStatement emptyStatement = node;
|
||||
if (emptyStatement.parent is Block) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(utils.getLinesRange(range.node(emptyStatement)));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_EMPTY_STATEMENT);
|
||||
} else {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
range.endEnd(emptyStatement.beginToken.previous, emptyStatement),
|
||||
' {}');
|
||||
|
@ -1986,8 +1936,7 @@ class FixProcessor {
|
|||
return;
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.endEnd(ancestor.name, ancestor.initializer));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_INITIALIZER);
|
||||
|
@ -1999,8 +1948,7 @@ class FixProcessor {
|
|||
Token right = node.rightBracket;
|
||||
if (node.expression != null && right != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
range.startStart(node, node.expression), r'$');
|
||||
builder.addDeletion(range.token(right));
|
||||
|
@ -2016,8 +1964,7 @@ class FixProcessor {
|
|||
node.getAncestor((node) => node is MethodDeclaration);
|
||||
if (declaration != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(utils.getLinesRange(range.node(declaration)));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_METHOD_DECLARATION);
|
||||
|
@ -2031,8 +1978,7 @@ class FixProcessor {
|
|||
FunctionBody body = method.body;
|
||||
if (name != null && body != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.endStart(name, body), ' ');
|
||||
});
|
||||
_addFixFromBuilder(
|
||||
|
@ -2046,8 +1992,7 @@ class FixProcessor {
|
|||
MethodInvocation invocation = node.parent as MethodInvocation;
|
||||
if (invocation.methodName == node && invocation.target != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.endEnd(node, invocation));
|
||||
});
|
||||
_addFixFromBuilder(
|
||||
|
@ -2063,15 +2008,13 @@ class FixProcessor {
|
|||
final parent = thisExpression.parent;
|
||||
if (parent is PropertyAccess) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.startEnd(parent, parent.operator));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_THIS_EXPRESSION);
|
||||
} else if (parent is MethodInvocation) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.startEnd(parent, parent.operator));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_THIS_EXPRESSION);
|
||||
|
@ -2082,8 +2025,7 @@ class FixProcessor {
|
|||
final TypeName type = node.getAncestor((node) => node is TypeName);
|
||||
if (type != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.startStart(type, type.endToken.next));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_TYPE_NAME);
|
||||
|
@ -2099,8 +2041,7 @@ class FixProcessor {
|
|||
int expressionPrecedence = getExpressionPrecedence(expression);
|
||||
// remove 'as T' from 'e as T'
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(range.endEnd(expression, asExpression));
|
||||
_removeEnclosingParentheses(builder, asExpression, expressionPrecedence);
|
||||
});
|
||||
|
@ -2113,8 +2054,7 @@ class FixProcessor {
|
|||
if (catchClause is CatchClause &&
|
||||
catchClause.exceptionParameter == node) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(
|
||||
range.startStart(catchClause.catchKeyword, catchClause.body));
|
||||
});
|
||||
|
@ -2131,8 +2071,7 @@ class FixProcessor {
|
|||
catchClause.stackTraceParameter == node &&
|
||||
catchClause.exceptionParameter != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder
|
||||
.addDeletion(range.endEnd(catchClause.exceptionParameter, node));
|
||||
});
|
||||
|
@ -2151,8 +2090,7 @@ class FixProcessor {
|
|||
}
|
||||
// remove the whole line with import
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addDeletion(utils.getLinesRange(range.node(importDirective)));
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REMOVE_UNUSED_IMPORT);
|
||||
|
@ -2160,8 +2098,7 @@ class FixProcessor {
|
|||
|
||||
Future<Null> _addFix_replaceVarWithDynamic() async {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.error(error), 'dynamic');
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.REPLACE_VAR_WITH_DYNAMIC);
|
||||
|
@ -2184,8 +2121,7 @@ class FixProcessor {
|
|||
final expression = thenStatement.expression.unParenthesized;
|
||||
if (expression is AssignmentExpression) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(ifStatement),
|
||||
(DartEditBuilder builder) {
|
||||
builder.write(utils.getNodeText(expression.leftHandSide));
|
||||
|
@ -2204,8 +2140,7 @@ class FixProcessor {
|
|||
if (coveredNode is InstanceCreationExpression) {
|
||||
var instanceCreation = coveredNode as InstanceCreationExpression;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(
|
||||
range.token(instanceCreation.keyword), 'const');
|
||||
});
|
||||
|
@ -2218,8 +2153,7 @@ class FixProcessor {
|
|||
node.getAncestor((node) => node is FunctionTypedFormalParameter);
|
||||
if (functionTyped != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.node(functionTyped),
|
||||
utils.getNodeText(functionTyped.identifier));
|
||||
});
|
||||
|
@ -2235,8 +2169,7 @@ class FixProcessor {
|
|||
final InterfaceType type = instanceCreation.staticType;
|
||||
final generics = instanceCreation.constructorName.type.typeArguments;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(instanceCreation),
|
||||
(DartEditBuilder builder) {
|
||||
if (generics != null) {
|
||||
|
@ -2260,8 +2193,7 @@ class FixProcessor {
|
|||
}
|
||||
Future<Null> addFixOfExpression(InvocationExpression expression) async {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addReplacement(range.node(ancestor), (DartEditBuilder builder) {
|
||||
if (expression is MethodInvocation && expression.target != null) {
|
||||
builder.write(utils.getNodeText(expression.target));
|
||||
|
@ -2328,8 +2260,7 @@ class FixProcessor {
|
|||
String closestName = finder._element.name;
|
||||
if (closestName != null) {
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.node(node), closestName);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.CHANGE_TO,
|
||||
|
@ -2392,8 +2323,7 @@ class FixProcessor {
|
|||
if (finder._element != null) {
|
||||
String closestName = finder._element.name;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.node(node), closestName);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.CHANGE_TO,
|
||||
|
@ -2424,8 +2354,7 @@ class FixProcessor {
|
|||
utils.targetClassElement = null;
|
||||
// build method source
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(insertOffset, (DartEditBuilder builder) {
|
||||
builder.write(sourcePrefix);
|
||||
// append return type
|
||||
|
@ -2486,8 +2415,7 @@ class FixProcessor {
|
|||
if (finder._element != null) {
|
||||
String closestName = finder._element.name;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(range.node(node), closestName);
|
||||
});
|
||||
_addFixFromBuilder(changeBuilder, DartFixKind.CHANGE_TO,
|
||||
|
@ -2545,11 +2473,9 @@ class FixProcessor {
|
|||
ClassMemberLocation targetLocation =
|
||||
utils.prepareNewMethodLocation(targetClassNode);
|
||||
String targetFile = targetElement.source.fullName;
|
||||
int targetStamp =
|
||||
targetElement.context.getModificationStamp(targetElement.source);
|
||||
// build method source
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(targetFile, targetStamp,
|
||||
await changeBuilder.addFileEdit(targetFile,
|
||||
(DartFileEditBuilder builder) {
|
||||
builder.addInsertion(targetLocation.offset, (DartEditBuilder builder) {
|
||||
builder.write(targetLocation.prefix);
|
||||
|
@ -2615,8 +2541,7 @@ class FixProcessor {
|
|||
}
|
||||
}
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// append new field formal initializers
|
||||
if (lastRequiredParameter != null) {
|
||||
builder.addSimpleInsertion(
|
||||
|
@ -2639,8 +2564,7 @@ class FixProcessor {
|
|||
n.length == errorLength) {
|
||||
Expression target = (n as MethodInvocation).target.unParenthesized;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// replace "/" with "~/"
|
||||
BinaryExpression binary = target as BinaryExpression;
|
||||
builder.addSimpleReplacement(range.token(binary.operator), '~/');
|
||||
|
@ -2665,8 +2589,7 @@ class FixProcessor {
|
|||
if (declaringElement is ClassElement) {
|
||||
DartType declaringType = declaringElement.type;
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(file, fileStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(file, (DartFileEditBuilder builder) {
|
||||
// replace "target" with class name
|
||||
builder.addReplacement(range.node(target), (DartEditBuilder builder) {
|
||||
builder.writeType(declaringType);
|
||||
|
@ -2725,10 +2648,8 @@ class FixProcessor {
|
|||
Element target) async {
|
||||
// build method source
|
||||
String targetFile = targetSource.fullName;
|
||||
int timeStamp = target.context.getModificationStamp(targetSource);
|
||||
DartChangeBuilder changeBuilder = new DartChangeBuilder(driver);
|
||||
await changeBuilder.addFileEdit(targetFile, timeStamp,
|
||||
(DartFileEditBuilder builder) {
|
||||
await changeBuilder.addFileEdit(targetFile, (DartFileEditBuilder builder) {
|
||||
builder.addInsertion(insertOffset, (DartEditBuilder builder) {
|
||||
builder.write(sourcePrefix);
|
||||
builder.write(prefix);
|
||||
|
@ -3111,12 +3032,6 @@ class FixProcessor {
|
|||
.isWithin(packageRoot.path, source.fullName);
|
||||
}
|
||||
|
||||
int _modificationStamp(String filePath) {
|
||||
// TODO(brianwilkerson) We have lost the ability for clients to know whether
|
||||
// it is safe to apply an edit.
|
||||
return driver.fsState.getFileForPath(filePath).exists ? 0 : -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes any [ParenthesizedExpression] enclosing [expr].
|
||||
*
|
||||
|
|
|
@ -44,9 +44,9 @@ class ChangeBuilderImpl implements ChangeBuilder {
|
|||
}
|
||||
|
||||
@override
|
||||
Future<Null> addFileEdit(String path, int fileStamp,
|
||||
void buildFileEdit(FileEditBuilder builder)) async {
|
||||
FileEditBuilderImpl builder = await createFileEditBuilder(path, fileStamp);
|
||||
Future<Null> addFileEdit(
|
||||
String path, void buildFileEdit(FileEditBuilder builder)) async {
|
||||
FileEditBuilderImpl builder = await createFileEditBuilder(path);
|
||||
buildFileEdit(builder);
|
||||
_change.addFileEdit(builder.fileEdit);
|
||||
builder.finalize();
|
||||
|
@ -56,9 +56,8 @@ class ChangeBuilderImpl implements ChangeBuilder {
|
|||
* Create and return a [FileEditBuilder] that can be used to build edits to
|
||||
* the file with the given [path] and [timeStamp].
|
||||
*/
|
||||
Future<FileEditBuilderImpl> createFileEditBuilder(
|
||||
String path, int timeStamp) async {
|
||||
return new FileEditBuilderImpl(this, path, timeStamp);
|
||||
Future<FileEditBuilderImpl> createFileEditBuilder(String path) async {
|
||||
return new FileEditBuilderImpl(this, path, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -40,15 +40,15 @@ class DartChangeBuilderImpl extends ChangeBuilderImpl
|
|||
DartChangeBuilderImpl(this.driver);
|
||||
|
||||
@override
|
||||
Future<Null> addFileEdit(String path, int fileStamp,
|
||||
void buildFileEdit(DartFileEditBuilder builder)) =>
|
||||
super.addFileEdit(path, fileStamp, buildFileEdit);
|
||||
Future<Null> addFileEdit(
|
||||
String path, void buildFileEdit(DartFileEditBuilder builder)) =>
|
||||
super.addFileEdit(path, buildFileEdit);
|
||||
|
||||
@override
|
||||
Future<DartFileEditBuilderImpl> createFileEditBuilder(
|
||||
String path, int fileStamp) async {
|
||||
Future<DartFileEditBuilderImpl> createFileEditBuilder(String path) async {
|
||||
AnalysisResult result = await driver.getResult(path);
|
||||
return new DartFileEditBuilderImpl(this, path, fileStamp, result.unit);
|
||||
int timeStamp = driver.fsState.getFileForPath(path).exists ? 0 : -1;
|
||||
return new DartFileEditBuilderImpl(this, path, timeStamp, result.unit);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,12 +28,10 @@ abstract class ChangeBuilder {
|
|||
/**
|
||||
* Use the [buildFileEdit] function to create a collection of edits to the
|
||||
* file with the given [path]. The edits will be added to the source change
|
||||
* that is being built. The [timeStamp] is the time at which the file was last
|
||||
* modified and is used by clients to ensure that it is safe to apply the
|
||||
* edits.
|
||||
* that is being built.
|
||||
*/
|
||||
Future<Null> addFileEdit(
|
||||
String path, int timeStamp, void buildFileEdit(FileEditBuilder builder));
|
||||
String path, void buildFileEdit(FileEditBuilder builder));
|
||||
|
||||
/**
|
||||
* Set the selection for the change being built to the given [position].
|
||||
|
|
|
@ -25,8 +25,8 @@ abstract class DartChangeBuilder implements ChangeBuilder {
|
|||
factory DartChangeBuilder(AnalysisDriver driver) = DartChangeBuilderImpl;
|
||||
|
||||
@override
|
||||
Future<Null> addFileEdit(String path, int fileStamp,
|
||||
void buildFileEdit(DartFileEditBuilder builder));
|
||||
Future<Null> addFileEdit(
|
||||
String path, void buildFileEdit(DartFileEditBuilder builder));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,13 +23,11 @@ class ChangeBuilderImplTest {
|
|||
test_createFileEditBuilder() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
String path = '/test.dart';
|
||||
int timeStamp = 54;
|
||||
FileEditBuilderImpl fileEditBuilder =
|
||||
await builder.createFileEditBuilder(path, timeStamp);
|
||||
await builder.createFileEditBuilder(path);
|
||||
expect(fileEditBuilder, new isInstanceOf<FileEditBuilder>());
|
||||
SourceFileEdit fileEdit = fileEditBuilder.fileEdit;
|
||||
expect(fileEdit.file, path);
|
||||
expect(fileEdit.fileStamp, timeStamp);
|
||||
}
|
||||
|
||||
void test_getLinkedEditGroup() {
|
||||
|
@ -59,7 +57,7 @@ class ChangeBuilderImplTest {
|
|||
test_sourceChange_oneChange() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
String path = '/test.dart';
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {});
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {});
|
||||
builder.getLinkedEditGroup('a');
|
||||
SourceChange sourceChange = builder.sourceChange;
|
||||
expect(sourceChange, isNotNull);
|
||||
|
@ -78,7 +76,7 @@ class EditBuilderImplTest {
|
|||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
int offset = 10;
|
||||
String text = 'content';
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(10, (EditBuilder builder) {
|
||||
builder.addLinkedEdit('a', (LinkedEditBuilder builder) {
|
||||
builder.write(text);
|
||||
|
@ -103,7 +101,7 @@ class EditBuilderImplTest {
|
|||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
int offset = 10;
|
||||
String text = 'content';
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(10, (EditBuilder builder) {
|
||||
builder.addSimpleLinkedEdit('a', text);
|
||||
SourceEdit sourceEdit = (builder as EditBuilderImpl).sourceEdit;
|
||||
|
@ -124,7 +122,7 @@ class EditBuilderImplTest {
|
|||
|
||||
test_createLinkedEditBuilder() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(10, (EditBuilder builder) {
|
||||
LinkedEditBuilderImpl linkBuilder =
|
||||
(builder as EditBuilderImpl).createLinkedEditBuilder();
|
||||
|
@ -135,7 +133,7 @@ class EditBuilderImplTest {
|
|||
|
||||
test_selectHere() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(10, (EditBuilder builder) {
|
||||
builder.selectHere();
|
||||
});
|
||||
|
@ -145,10 +143,9 @@ class EditBuilderImplTest {
|
|||
|
||||
test_write() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
int timeStamp = 93;
|
||||
int offset = 10;
|
||||
String text = 'write';
|
||||
await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(offset, (EditBuilder builder) {
|
||||
builder.write(text);
|
||||
});
|
||||
|
@ -162,7 +159,6 @@ class EditBuilderImplTest {
|
|||
SourceFileEdit fileEdit = fileEdits[0];
|
||||
expect(fileEdit, isNotNull);
|
||||
expect(fileEdit.file, path);
|
||||
expect(fileEdit.fileStamp, timeStamp);
|
||||
|
||||
List<SourceEdit> edits = fileEdit.edits;
|
||||
expect(edits, hasLength(1));
|
||||
|
@ -175,10 +171,9 @@ class EditBuilderImplTest {
|
|||
|
||||
test_writeln_withoutText() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
int timeStamp = 39;
|
||||
int offset = 52;
|
||||
int length = 12;
|
||||
await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addReplacement(new SourceRange(offset, length),
|
||||
(EditBuilder builder) {
|
||||
builder.writeln();
|
||||
|
@ -193,7 +188,6 @@ class EditBuilderImplTest {
|
|||
SourceFileEdit fileEdit = fileEdits[0];
|
||||
expect(fileEdit, isNotNull);
|
||||
expect(fileEdit.file, path);
|
||||
expect(fileEdit.fileStamp, timeStamp);
|
||||
|
||||
List<SourceEdit> edits = fileEdit.edits;
|
||||
expect(edits, hasLength(1));
|
||||
|
@ -206,11 +200,10 @@ class EditBuilderImplTest {
|
|||
|
||||
test_writeln_withText() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
int timeStamp = 39;
|
||||
int offset = 52;
|
||||
int length = 12;
|
||||
String text = 'writeln';
|
||||
await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addReplacement(new SourceRange(offset, length),
|
||||
(EditBuilder builder) {
|
||||
builder.writeln(text);
|
||||
|
@ -225,7 +218,6 @@ class EditBuilderImplTest {
|
|||
SourceFileEdit fileEdit = fileEdits[0];
|
||||
expect(fileEdit, isNotNull);
|
||||
expect(fileEdit.file, path);
|
||||
expect(fileEdit.fileStamp, timeStamp);
|
||||
|
||||
List<SourceEdit> edits = fileEdit.edits;
|
||||
expect(edits, hasLength(1));
|
||||
|
@ -246,7 +238,7 @@ class FileEditBuilderImplTest {
|
|||
int offset = 23;
|
||||
int length = 7;
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addDeletion(new SourceRange(offset, length));
|
||||
});
|
||||
List<SourceEdit> edits = builder.sourceChange.edits[0].edits;
|
||||
|
@ -258,7 +250,7 @@ class FileEditBuilderImplTest {
|
|||
|
||||
test_addInsertion() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(10, (EditBuilder builder) {
|
||||
expect(builder, isNotNull);
|
||||
});
|
||||
|
@ -268,7 +260,7 @@ class FileEditBuilderImplTest {
|
|||
test_addLinkedPosition() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
String groupName = 'a';
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addLinkedPosition(new SourceRange(3, 6), groupName);
|
||||
});
|
||||
|
||||
|
@ -283,7 +275,7 @@ class FileEditBuilderImplTest {
|
|||
|
||||
test_addReplacement() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addReplacement(new SourceRange(4, 5), (EditBuilder builder) {
|
||||
expect(builder, isNotNull);
|
||||
});
|
||||
|
@ -294,7 +286,7 @@ class FileEditBuilderImplTest {
|
|||
int offset = 23;
|
||||
String text = 'xyz';
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addSimpleInsertion(offset, text);
|
||||
});
|
||||
List<SourceEdit> edits = builder.sourceChange.edits[0].edits;
|
||||
|
@ -309,7 +301,7 @@ class FileEditBuilderImplTest {
|
|||
int length = 7;
|
||||
String text = 'xyz';
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addSimpleReplacement(new SourceRange(offset, length), text);
|
||||
});
|
||||
List<SourceEdit> edits = builder.sourceChange.edits[0].edits;
|
||||
|
@ -321,7 +313,7 @@ class FileEditBuilderImplTest {
|
|||
|
||||
test_createEditBuilder() async {
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
int offset = 4;
|
||||
int length = 5;
|
||||
EditBuilderImpl editBuilder =
|
||||
|
@ -342,7 +334,7 @@ class LinkedEditBuilderImplTest {
|
|||
test_addSuggestion() async {
|
||||
String groupName = 'a';
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(10, (EditBuilder builder) {
|
||||
builder.addLinkedEdit(groupName, (LinkedEditBuilder builder) {
|
||||
builder.addSuggestion(LinkedEditSuggestionKind.TYPE, 'A');
|
||||
|
@ -357,7 +349,7 @@ class LinkedEditBuilderImplTest {
|
|||
test_addSuggestions() async {
|
||||
String groupName = 'a';
|
||||
ChangeBuilderImpl builder = new ChangeBuilderImpl();
|
||||
await builder.addFileEdit(path, 0, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(10, (EditBuilder builder) {
|
||||
builder.addLinkedEdit(groupName, (LinkedEditBuilder builder) {
|
||||
builder.addSuggestions(LinkedEditSuggestionKind.TYPE, ['A', 'B']);
|
||||
|
|
|
@ -61,14 +61,12 @@ class DartChangeBuilderImplTest extends AbstractContextTest {
|
|||
test_createFileEditBuilder() async {
|
||||
String path = provider.convertPath('/test.dart');
|
||||
addSource(path, 'library test;');
|
||||
int timeStamp = 54;
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
DartFileEditBuilderImpl fileEditBuilder =
|
||||
await builder.createFileEditBuilder(path, timeStamp);
|
||||
await builder.createFileEditBuilder(path);
|
||||
expect(fileEditBuilder, new isInstanceOf<DartFileEditBuilder>());
|
||||
SourceFileEdit fileEdit = fileEditBuilder.fileEdit;
|
||||
expect(fileEdit.file, path);
|
||||
expect(fileEdit.fileStamp, timeStamp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -341,7 +339,7 @@ import 'aaa.dart';
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeClassDeclaration('C', interfaces: [typeA]);
|
||||
|
@ -357,7 +355,7 @@ import 'aaa.dart';
|
|||
addSource(path, '');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeClassDeclaration('C', isAbstract: true);
|
||||
|
@ -372,7 +370,7 @@ import 'aaa.dart';
|
|||
addSource(path, '');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeClassDeclaration('C',
|
||||
memberWriter: () {
|
||||
|
@ -390,7 +388,7 @@ import 'aaa.dart';
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeClassDeclaration('C', mixins: [typeA]);
|
||||
|
@ -408,7 +406,7 @@ import 'aaa.dart';
|
|||
DartType typeB = await _getType(path, 'B');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeClassDeclaration('C', mixins: [typeB], superclass: typeA);
|
||||
|
@ -424,7 +422,7 @@ import 'aaa.dart';
|
|||
addSource(path, '');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeClassDeclaration('C', nameGroupName: 'name');
|
||||
|
@ -447,7 +445,7 @@ import 'aaa.dart';
|
|||
DartType typeB = await _getType(path, 'B');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeClassDeclaration('C',
|
||||
superclass: typeB, superclassGroupName: 'superclass');
|
||||
|
@ -470,7 +468,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeFieldDeclaration('f',
|
||||
initializerWriter: () {
|
||||
|
@ -488,7 +486,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeFieldDeclaration('f', isConst: true);
|
||||
});
|
||||
|
@ -503,7 +501,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeFieldDeclaration('f', isConst: true, isFinal: true);
|
||||
|
@ -519,7 +517,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeFieldDeclaration('f', isFinal: true);
|
||||
});
|
||||
|
@ -534,7 +532,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeFieldDeclaration('f', isStatic: true);
|
||||
});
|
||||
|
@ -549,7 +547,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeFieldDeclaration('f', nameGroupName: 'name');
|
||||
|
@ -575,7 +573,7 @@ import 'aaa.dart';
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeFieldDeclaration('f', type: typeA, typeGroupName: 'type');
|
||||
|
@ -600,7 +598,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeFunctionDeclaration('fib',
|
||||
bodyWriter: () {
|
||||
|
@ -618,7 +616,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeFunctionDeclaration('fib', nameGroupName: 'name');
|
||||
|
@ -641,7 +639,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeFunctionDeclaration('fib',
|
||||
parameterWriter: () {
|
||||
|
@ -661,7 +659,7 @@ import 'aaa.dart';
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(0, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeFunctionDeclaration('fib',
|
||||
returnType: typeA, returnTypeGroupName: 'type');
|
||||
|
@ -684,7 +682,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeGetterDeclaration('g',
|
||||
bodyWriter: () {
|
||||
|
@ -702,7 +700,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeGetterDeclaration('g', isStatic: true);
|
||||
|
@ -718,7 +716,7 @@ import 'aaa.dart';
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeGetterDeclaration('g', nameGroupName: 'name');
|
||||
|
@ -744,7 +742,7 @@ import 'aaa.dart';
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeGetterDeclaration('g',
|
||||
returnType: typeA, returnTypeGroupName: 'returnType');
|
||||
|
@ -773,7 +771,7 @@ void f() {
|
|||
await driver.getResult(path);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(11, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeLocalVariableDeclaration('foo',
|
||||
initializerWriter: () {
|
||||
|
@ -795,7 +793,7 @@ void f() {
|
|||
await driver.getResult(path);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(11, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeLocalVariableDeclaration('foo', nameGroupName: 'name');
|
||||
|
@ -822,7 +820,7 @@ void f() {
|
|||
await driver.getResult(path);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(11, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeLocalVariableDeclaration('foo', isConst: true);
|
||||
|
@ -842,7 +840,7 @@ void f() {
|
|||
await driver.getResult(path);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(11, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeLocalVariableDeclaration('foo', isFinal: true);
|
||||
|
@ -865,7 +863,7 @@ class MyClass {}''';
|
|||
ClassDeclaration A = unit.declarations[1];
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(11, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeLocalVariableDeclaration('foo',
|
||||
initializerWriter: () {
|
||||
|
@ -890,7 +888,7 @@ class MyClass {}''';
|
|||
ClassDeclaration A = unit.declarations[1];
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(11, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeLocalVariableDeclaration('foo',
|
||||
type: A.element.type, typeGroupName: 'type');
|
||||
|
@ -920,7 +918,7 @@ class MyClass {}''';
|
|||
ClassDeclaration A = unit.declarations[1];
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(11, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeLocalVariableDeclaration('foo',
|
||||
isFinal: true, type: A.element.type, typeGroupName: 'type');
|
||||
|
@ -949,7 +947,7 @@ class B extends A {
|
|||
ClassElement classA = await _getClassElement(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeOverrideOfInheritedMember(classA.methods[0]);
|
||||
|
@ -982,7 +980,7 @@ class A {}
|
|||
Expression argument = invocation.argumentList.arguments[0];
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(2, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeParameterMatchingArgument(argument, 0, new Set<String>());
|
||||
|
@ -1004,7 +1002,7 @@ class A {}
|
|||
.map(resolutionMap.elementDeclaredByFormalParameter);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeParameters(elements);
|
||||
});
|
||||
|
@ -1024,7 +1022,7 @@ class A {}
|
|||
.map(resolutionMap.elementDeclaredByFormalParameter);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeParameters(elements);
|
||||
});
|
||||
|
@ -1044,7 +1042,7 @@ class A {}
|
|||
.map(resolutionMap.elementDeclaredByFormalParameter);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeParameters(elements);
|
||||
});
|
||||
|
@ -1067,7 +1065,7 @@ f(int i, String s) {
|
|||
MethodInvocation invocation = statement.expression;
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeParametersMatchingArguments(invocation.argumentList);
|
||||
|
@ -1091,7 +1089,7 @@ f(int i, String s) {
|
|||
MethodInvocation invocation = statement.expression;
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeParametersMatchingArguments(invocation.argumentList);
|
||||
|
@ -1108,7 +1106,7 @@ f(int i, String s) {
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeParameterSource(typeA, 'a');
|
||||
});
|
||||
|
@ -1124,7 +1122,7 @@ f(int i, String s) {
|
|||
CompilationUnit unit = (await driver.getResult(path))?.unit;
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(resolutionMap
|
||||
.elementDeclaredByCompilationUnit(unit)
|
||||
|
@ -1145,7 +1143,7 @@ f(int i, String s) {
|
|||
InterfaceType typeB = await _getType(path, 'B');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(typeB.instantiate([typeA]));
|
||||
});
|
||||
|
@ -1161,7 +1159,7 @@ f(int i, String s) {
|
|||
DartType typeC = await _getType(path, 'C');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(typeC, groupName: 'type');
|
||||
});
|
||||
|
@ -1183,7 +1181,7 @@ f(int i, String s) {
|
|||
DartType typeC = await _getType(path, 'C');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder)
|
||||
.writeType(typeC, addSupertypeProposals: true, groupName: 'type');
|
||||
|
@ -1215,7 +1213,7 @@ f(int i, String s) {
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(null);
|
||||
});
|
||||
|
@ -1231,7 +1229,7 @@ f(int i, String s) {
|
|||
CompilationUnit unit = (await driver.getResult(path))?.unit;
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(
|
||||
resolutionMap
|
||||
|
@ -1253,7 +1251,7 @@ f(int i, String s) {
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(typeA, required: true);
|
||||
});
|
||||
|
@ -1268,7 +1266,7 @@ f(int i, String s) {
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(null, required: true);
|
||||
});
|
||||
|
@ -1284,7 +1282,7 @@ f(int i, String s) {
|
|||
DartType typeA = await _getType(path, 'A');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilder).writeType(typeA);
|
||||
});
|
||||
|
@ -1299,7 +1297,7 @@ f(int i, String s) {
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilderImpl).writeTypes([]);
|
||||
});
|
||||
|
@ -1316,7 +1314,7 @@ f(int i, String s) {
|
|||
DartType typeB = await _getType(path, 'B');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilderImpl).writeTypes([typeA, typeB]);
|
||||
});
|
||||
|
@ -1331,7 +1329,7 @@ f(int i, String s) {
|
|||
addSource(path, content);
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilderImpl).writeTypes(null);
|
||||
});
|
||||
|
@ -1348,7 +1346,7 @@ f(int i, String s) {
|
|||
DartType typeB = await _getType(path, 'B');
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
builder.addInsertion(content.length - 1, (EditBuilder builder) {
|
||||
(builder as DartEditBuilderImpl)
|
||||
.writeTypes([typeA, typeB], prefix: 'implements ');
|
||||
|
@ -1363,7 +1361,7 @@ f(int i, String s) {
|
|||
String path = provider.convertPath('/test.dart');
|
||||
addSource(path, initialCode);
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (DartFileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (DartFileEditBuilder builder) {
|
||||
Iterable<_MockSource> sources = newUris.map((newUri) {
|
||||
String path =
|
||||
newUri.contains(':') ? null : provider.convertPath('/$newUri');
|
||||
|
@ -1409,7 +1407,7 @@ class DartFileEditBuilderImplTest extends AbstractContextTest
|
|||
FunctionBody body = function.functionExpression.body;
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
(builder as DartFileEditBuilder)
|
||||
.convertFunctionFromSyncToAsync(body, typeProvider);
|
||||
});
|
||||
|
@ -1424,9 +1422,8 @@ class DartFileEditBuilderImplTest extends AbstractContextTest
|
|||
test_createEditBuilder() async {
|
||||
String path = provider.convertPath('/test.dart');
|
||||
addSource(path, 'library test;');
|
||||
int timeStamp = 65;
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
int offset = 4;
|
||||
int length = 5;
|
||||
DartEditBuilderImpl editBuilder = (builder as DartFileEditBuilderImpl)
|
||||
|
@ -1448,7 +1445,7 @@ class DartFileEditBuilderImplTest extends AbstractContextTest
|
|||
TypeAnnotation type = function.returnType;
|
||||
|
||||
DartChangeBuilderImpl builder = new DartChangeBuilderImpl(driver);
|
||||
await builder.addFileEdit(path, 1, (FileEditBuilder builder) {
|
||||
await builder.addFileEdit(path, (FileEditBuilder builder) {
|
||||
(builder as DartFileEditBuilder)
|
||||
.replaceTypeWithFuture(type, typeProvider);
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue