Version 2.13.0-226.0.dev
Merge commit '5b6d517fe8b59c374bd0dd3be85797961b6948c7' into 'dev'
diff --git a/pkg/analysis_server/lib/src/services/flutter/property.dart b/pkg/analysis_server/lib/src/services/flutter/property.dart
index d7dce19..11af175 100644
--- a/pkg/analysis_server/lib/src/services/flutter/property.dart
+++ b/pkg/analysis_server/lib/src/services/flutter/property.dart
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-// @dart = 2.9
-
import 'package:analysis_server/src/protocol_server.dart' as protocol;
import 'package:analysis_server/src/services/flutter/class_description.dart';
import 'package:analysis_server/src/utilities/flutter.dart';
@@ -18,12 +16,12 @@
import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart';
import 'package:analyzer_plugin/utilities/range_factory.dart';
-String getFieldDocumentation(FieldElement field) {
+String? getFieldDocumentation(FieldElement field) {
var rawComment = field.documentationComment;
return getDartDocPlainText(rawComment);
}
-String getParameterDocumentation(ParameterElement parameter) {
+String? getParameterDocumentation(ParameterElement? parameter) {
if (parameter is FieldFormalParameterElement) {
var rawComment = parameter.field?.documentationComment;
return getDartDocPlainText(rawComment);
@@ -34,42 +32,42 @@
class PropertyDescription {
static int _nextPropertyId = 0;
- final PropertyDescription parent;
+ final PropertyDescription? parent;
/// The resolved unit, where the property value is.
final ResolvedUnitResult resolvedUnit;
/// The instance of [Flutter] support for the [resolvedUnit].
- final Flutter flutter;
+ final Flutter? flutter;
/// If the object that has this property is not materialized yet, so the
/// [instanceCreation] is `null`, the description of the object to
/// materialize.
- final ClassDescription classDescription;
+ final ClassDescription? classDescription;
/// The instance creation of the object that has this property. Or `null`
/// if the object is not materialized yet, in this case [classDescription]
/// is set.
- final InstanceCreationExpression instanceCreation;
+ final InstanceCreationExpression? instanceCreation;
/// Information about the `Container` property, which is not based on an
/// actual [instanceCreation] of the `Container` widget, i.e. is not
/// materialized.
- final VirtualContainerProperty virtualContainer;
+ final VirtualContainerProperty? virtualContainer;
/// If the property is set, the full argument expression, might be a
/// [NamedExpression].
- final Expression argumentExpression;
+ final Expression? argumentExpression;
/// If the property is set, the value part of the argument expression,
/// the same as [argumentExpression] if a positional argument, or the
/// expression part of the [NamedExpression].
- final Expression valueExpression;
+ final Expression? valueExpression;
/// The parameter element in the object constructor that is actually
/// invoked by [instanceCreation], or will be invoked when
/// [classDescription] is materialized.
- final ParameterElement parameterElement;
+ final ParameterElement? parameterElement;
/// Optional nested properties.
final List<PropertyDescription> children = [];
@@ -78,18 +76,18 @@
/// If this is a `EdgeInsets` typed property, the instance of helper.
/// Otherwise `null`.
- _EdgeInsetsProperty _edgeInsetsProperty;
+ _EdgeInsetsProperty? _edgeInsetsProperty;
PropertyDescription({
this.parent,
- this.resolvedUnit,
+ required this.resolvedUnit,
this.flutter,
this.classDescription,
this.instanceCreation,
this.argumentExpression,
this.valueExpression,
this.parameterElement,
- this.protocolProperty,
+ required this.protocolProperty,
this.virtualContainer,
});
@@ -97,19 +95,20 @@
/// This property has type `EdgeInsets`, add its nested properties.
void addEdgeInsetsNestedProperties(ClassElement classEdgeInsets) {
- _edgeInsetsProperty = _EdgeInsetsProperty(classEdgeInsets, this);
- _edgeInsetsProperty.addNested();
+ _edgeInsetsProperty = _EdgeInsetsProperty(classEdgeInsets, this)
+ ..addNested();
}
- Future<protocol.SourceChange> changeValue(
+ Future<protocol.SourceChange?> changeValue(
protocol.FlutterWidgetPropertyValue value) async {
- if (parent?._edgeInsetsProperty != null) {
- return parent._edgeInsetsProperty.changeValue(this, value);
+ var edgeInsetsProperty = parent?._edgeInsetsProperty;
+ if (edgeInsetsProperty != null) {
+ return edgeInsetsProperty.changeValue(this, value);
}
var builder = ChangeBuilder(session: resolvedUnit.session);
- ClassElement enumClassElement;
+ ClassElement? enumClassElement;
var enumValue = value.enumValue;
if (enumValue != null) {
var helper = AnalysisSessionHelper(resolvedUnit.session);
@@ -119,11 +118,12 @@
);
}
- await builder.addDartFileEdit(resolvedUnit.path, (builder) {
+ await builder.addDartFileEdit(resolvedUnit.path!, (builder) {
_changeCode(builder, (builder) {
- if (value.expression != null) {
- builder.write(value.expression);
- } else if (enumClassElement != null) {
+ var expression = value.expression;
+ if (expression != null) {
+ builder.write(expression);
+ } else if (enumClassElement != null && enumValue != null) {
builder.writeReference(enumClassElement);
builder.write('.');
builder.write(enumValue.name);
@@ -141,7 +141,9 @@
Future<protocol.SourceChange> removeValue() async {
var builder = ChangeBuilder(session: resolvedUnit.session);
- if (argumentExpression != null) {
+ final argumentExpression = this.argumentExpression;
+ final instanceCreation = this.instanceCreation;
+ if (argumentExpression != null && instanceCreation != null) {
int endOffset;
var argumentList = instanceCreation.argumentList;
var arguments = argumentList.arguments;
@@ -153,7 +155,7 @@
}
var beginOffset = argumentExpression.offset;
- await builder.addDartFileEdit(resolvedUnit.path, (builder) {
+ await builder.addDartFileEdit(resolvedUnit.path!, (builder) {
builder.addDeletion(
SourceRange(beginOffset, endOffset - beginOffset),
);
@@ -177,10 +179,16 @@
DartFileEditBuilder builder,
void Function(DartEditBuilder builder) buildCode,
) {
+ final valueExpression = this.valueExpression;
if (valueExpression != null) {
builder.addReplacement(range.node(valueExpression), buildCode);
} else {
+ final parameterElement = this.parameterElement;
+ if (parameterElement == null) {
+ return;
+ }
var parameterName = parameterElement.name;
+ final instanceCreation = this.instanceCreation;
if (instanceCreation != null) {
var argumentList = instanceCreation.argumentList;
@@ -203,7 +211,7 @@
var rightParenthesis = argumentList.rightParenthesis;
insertOffset = rightParenthesis.offset;
var previous = rightParenthesis.previous;
- if (previous.type != TokenType.COMMA &&
+ if (previous?.type != TokenType.COMMA &&
previous != argumentList.leftParenthesis) {
needsLeadingComma = true;
}
@@ -221,9 +229,17 @@
builder.write(', ');
});
} else {
+ final parent = this.parent;
+ if (parent == null) {
+ return;
+ }
if (parent.virtualContainer != null) {
parent._changeCodeVirtualContainer(builder, parameterName, buildCode);
} else {
+ final classDescription = this.classDescription;
+ if (classDescription == null) {
+ return;
+ }
parent._changeCode(builder, (builder) {
builder.writeReference(classDescription.element);
// TODO(scheglov) constructor name
@@ -244,12 +260,17 @@
String parameterName,
void Function(DartEditBuilder builder) writeArgumentValue,
) {
- if (virtualContainer._parentCreation != null) {
+ final virtualContainer = this.virtualContainer;
+ if (virtualContainer == null) {
+ return;
+ }
+ var parentCreation = virtualContainer._parentCreation;
+ if (parentCreation != null) {
// `new Padding(...)` -> `Container(...)`
builder.addReplacement(
range.startEnd(
- virtualContainer._parentCreation,
- virtualContainer._parentCreation.constructorName,
+ parentCreation,
+ parentCreation.constructorName,
),
(builder) {
builder.writeReference(virtualContainer.containerElement);
@@ -257,6 +278,9 @@
);
var existingArgument = virtualContainer._parentArgumentToMove;
+ if (existingArgument == null) {
+ return;
+ }
var existingName = existingArgument.name.label.name;
int parameterOffset;
@@ -312,11 +336,12 @@
}
FunctionBody _enclosingFunctionBody() {
+ final parent = this.parent;
if (parent != null) {
return parent._enclosingFunctionBody();
}
var anchorExpr = virtualContainer?.widgetCreation ?? instanceCreation;
- return anchorExpr.thisOrAncestorOfType<FunctionBody>();
+ return anchorExpr!.thisOrAncestorOfType<FunctionBody>()!;
}
void _formatEnclosingFunctionBody(DartFileEditBuilder builder) {
@@ -341,8 +366,8 @@
return '${value.boolValue}';
}
- if (value.doubleValue != null) {
- var code = value.doubleValue.toStringAsFixed(1);
+ var code = value.doubleValue?.toStringAsFixed(1);
+ if (code != null) {
if (code.endsWith('.0')) {
code = code.substring(0, code.length - 2);
}
@@ -353,8 +378,8 @@
return '${value.intValue}';
}
- if (value.stringValue != null) {
- var code = value.stringValue;
+ code = value.stringValue;
+ if (code != null) {
if (code.contains("'")) {
code = code.replaceAll("'", r"\'");
}
@@ -381,11 +406,11 @@
/// replaced with full `Container` when `Container` is materialized.
///
/// Might be `null`, if no existing replacable wrapped.
- InstanceCreationExpression _parentCreation;
+ InstanceCreationExpression? _parentCreation;
/// The argument from the [_parentCreation] that should be moved into
/// the new `Container` creation during its materialization.
- NamedExpression _parentArgumentToMove;
+ NamedExpression? _parentArgumentToMove;
VirtualContainerProperty(
this.containerElement,
@@ -411,44 +436,48 @@
final PropertyDescription property;
/// The constructor `EdgeInsets.only`.
- ConstructorElement onlyConstructor;
+ ConstructorElement? onlyConstructor;
- double leftValue;
- double topValue;
- double rightValue;
- double bottomValue;
+ double? leftValue;
+ double? topValue;
+ double? rightValue;
+ double? bottomValue;
- PropertyDescription leftProperty;
- PropertyDescription topProperty;
- PropertyDescription rightProperty;
- PropertyDescription bottomProperty;
+ PropertyDescription? leftProperty;
+ PropertyDescription? topProperty;
+ PropertyDescription? rightProperty;
+ PropertyDescription? bottomProperty;
_EdgeInsetsProperty(this.classEdgeInsets, this.property);
- Flutter get flutter => property.flutter;
+ Flutter? get flutter => property.flutter;
void addNested() {
- Expression leftExpression;
- Expression topExpression;
- Expression rightExpression;
- Expression bottomExpression;
+ Expression? leftExpression;
+ Expression? topExpression;
+ Expression? rightExpression;
+ Expression? bottomExpression;
var propertyExpression = property.valueExpression;
if (propertyExpression is InstanceCreationExpression) {
+ final flutter = this.flutter;
var constructor = propertyExpression.constructorName.staticElement;
- if (constructor?.enclosingElement == classEdgeInsets) {
+ if (flutter != null &&
+ constructor != null &&
+ constructor.enclosingElement == classEdgeInsets) {
var arguments = propertyExpression.argumentList.arguments;
- if (constructor.name == 'all') {
+ var constructorName = constructor.name;
+ if (constructorName == 'all') {
var expression = flutter.argumentByIndex(arguments, 0);
leftExpression = expression;
topExpression = expression;
rightExpression = expression;
bottomExpression = expression;
- } else if (constructor.name == 'fromLTRB') {
+ } else if (constructorName == 'fromLTRB') {
leftExpression = flutter.argumentByIndex(arguments, 0);
topExpression = flutter.argumentByIndex(arguments, 1);
rightExpression = flutter.argumentByIndex(arguments, 2);
bottomExpression = flutter.argumentByIndex(arguments, 3);
- } else if (constructor.name == 'only') {
+ } else if (constructorName == 'only') {
var leftArgument = flutter.argumentByName(arguments, 'left');
var topArgument = flutter.argumentByName(arguments, 'top');
var rightArgument = flutter.argumentByName(arguments, 'right');
@@ -457,7 +486,7 @@
topExpression = topArgument?.expression;
rightExpression = rightArgument?.expression;
bottomExpression = bottomArgument?.expression;
- } else if (constructor.name == 'symmetric') {
+ } else if (constructorName == 'symmetric') {
var hArgument = flutter.argumentByName(arguments, 'horizontal');
var vArgument = flutter.argumentByName(arguments, 'vertical');
leftExpression = hArgument?.expression;
@@ -499,7 +528,7 @@
/// The value of the [nested] property is changed, make changes to the
/// value of the [property] is a whole, to generate nice code.
- Future<protocol.SourceChange> changeValue(
+ Future<protocol.SourceChange?> changeValue(
PropertyDescription nested,
protocol.FlutterWidgetPropertyValue value,
) async {
@@ -530,7 +559,7 @@
var builder = ChangeBuilder(session: property.resolvedUnit.session);
- await builder.addDartFileEdit(property.resolvedUnit.path, (builder) {
+ await builder.addDartFileEdit(property.resolvedUnit.path!, (builder) {
property._changeCode(builder, (builder) {
if (leftCode == rightCode && topCode == bottomCode) {
builder.writeReference(classEdgeInsets);
@@ -598,11 +627,11 @@
}
PropertyDescription _addNestedProperty({
- String name,
- Expression expression,
- double value,
+ required String name,
+ required Expression? expression,
+ required double? value,
}) {
- var parameter = onlyConstructor.parameters.singleWhere(
+ var parameter = onlyConstructor?.parameters.singleWhere(
(p) => p.name == name,
);
var parameterDocumentation = getParameterDocumentation(parameter);
@@ -628,17 +657,16 @@
return nested;
}
- String _expressionCode(Expression expression) {
+ String? _expressionCode(Expression? expression) {
if (expression != null) {
- var content = property.resolvedUnit.content;
+ var content = property.resolvedUnit.content!;
return content.substring(expression.offset, expression.end);
}
return null;
}
- static protocol.FlutterWidgetPropertyValue _protocolValueDouble(
- double value,
- ) {
+ static protocol.FlutterWidgetPropertyValue? _protocolValueDouble(
+ double? value) {
if (value != null) {
return protocol.FlutterWidgetPropertyValue(
doubleValue: value,
@@ -647,7 +675,7 @@
return null;
}
- static String _toDoubleCode(double value) {
+ static String _toDoubleCode(double? value) {
if (value == null) {
return '0';
}
@@ -659,12 +687,11 @@
return code;
}
- static double _valueDouble(Expression expression) {
+ static double? _valueDouble(Expression? expression) {
if (expression is DoubleLiteral) {
return expression.value;
- }
- if (expression is IntegerLiteral) {
- return expression.value.toDouble();
+ } else if (expression is IntegerLiteral) {
+ return expression.value?.toDouble();
}
return null;
}
diff --git a/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart b/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart
index d0cff3d..c92a7b2 100644
--- a/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart
+++ b/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart
@@ -67,7 +67,7 @@
with WithNonFunctionTypeAliasesMixin {
static const String _UNCHECKED = '__UNCHECKED__';
late String testFile;
- int? completionOffset;
+ int _completionOffset = -1;
late int replacementOffset;
late int replacementLength;
@@ -80,6 +80,14 @@
late List<CompletionSuggestion> suggestions;
+ /// Return the offset at which completion was requested.
+ int get completionOffset {
+ if (_completionOffset < 0) {
+ fail('Must call addTestSource exactly once');
+ }
+ return _completionOffset;
+ }
+
/// If `true` and `null` is specified as the suggestion's expected returnType
/// then the actual suggestion is expected to have a `dynamic` returnType.
/// Newer tests return `false` so that they can distinguish between
@@ -92,13 +100,14 @@
bool get suggestConstructorsWithoutNew => true;
void addTestSource(String content) {
- expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once');
- completionOffset = content.indexOf('^');
- expect(completionOffset, greaterThanOrEqualTo(0), reason: 'missing ^');
- var nextOffset = content.indexOf('^', completionOffset! + 1);
+ expect(_completionOffset, lessThan(0),
+ reason: 'Must call addTestSource exactly once');
+ _completionOffset = content.indexOf('^');
+ expect(_completionOffset, greaterThanOrEqualTo(0), reason: 'missing ^');
+ var nextOffset = content.indexOf('^', _completionOffset + 1);
expect(nextOffset, equals(-1), reason: 'too many ^');
- content = content.substring(0, completionOffset) +
- content.substring(completionOffset! + 1);
+ content = content.substring(0, _completionOffset) +
+ content.substring(_completionOffset + 1);
addSource(testFile, content);
}
@@ -529,7 +538,7 @@
Future computeSuggestions({int times = 200}) async {
result = await session.getResolvedUnit(testFile);
var baseRequest = CompletionRequestImpl(
- result, completionOffset!, CompletionPerformance());
+ result, completionOffset, CompletionPerformance());
return await baseRequest.performance.runRequestOperation(
(performance) async {
diff --git a/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart b/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart
index 5a236f2..0f6f5e7 100644
--- a/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart
@@ -50,7 +50,7 @@
// Build the request
var baseRequest = CompletionRequestImpl(
await session.getResolvedUnit(testFile),
- completionOffset!,
+ completionOffset,
CompletionPerformance());
await baseRequest.performance.runRequestOperation((performance) async {
var requestCompleter = Completer<DartCompletionRequest>();
diff --git a/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart
index fcc96d2..d28095f 100644
--- a/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart
@@ -84,7 +84,7 @@
m(X x) {} I _n(X x) {}}
class X{}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestField('b', null);
assertSuggestField('_c', 'X');
diff --git a/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart
index f56d0b2..cf8d182 100644
--- a/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart
@@ -473,7 +473,7 @@
int^ b = 1;}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('A');
assertSuggestClass('int');
@@ -497,7 +497,7 @@
b = 1;}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('A');
assertSuggestClass('int');
@@ -1044,7 +1044,7 @@
class X {a() {var f; {var x;} D^ var r;} void b() { }}
class Z { }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('X');
@@ -1186,7 +1186,7 @@
class Z { }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('partT8');
@@ -1326,7 +1326,7 @@
main() {A a; a^..b}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('b');
assertNotSuggested('_c');
@@ -1468,7 +1468,7 @@
A Sew;''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('A');
assertNotSuggested('_B');
@@ -1745,7 +1745,7 @@
main() {new String.fr^omCharCodes([]);}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 13);
// Suggested by NamedConstructorContributor
assertNotSuggested('fromCharCodes');
@@ -2183,7 +2183,7 @@
addTestSource('main(args) {for (S^ foo in args) {}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('args');
assertNotSuggested('foo');
@@ -2224,7 +2224,7 @@
addTestSource('main() {for (int index = 0; i^)}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('index');
}
@@ -2264,7 +2264,7 @@
addTestSource('main() {for (int index = 0; index < 10; i^)}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('index');
}
@@ -2276,7 +2276,7 @@
main() {for (int index = 0; index < 10; ++i^)}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('index');
assertNotSuggested('main');
@@ -2887,7 +2887,7 @@
addTestSource('class A {foo(){new C^}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
// Not imported, so not suggested
assertNotSuggested('Completer');
@@ -3076,7 +3076,7 @@
main(){var a; if (a is Obj^)}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('a');
assertNotSuggested('main');
@@ -3152,7 +3152,7 @@
main() {new^ X.c();}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('c');
assertNotSuggested('_d');
@@ -3252,7 +3252,7 @@
foo = {T^''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
// Simulate unresolved imported library,
// in which case suggestions will have null return types (unresolved)
@@ -3279,7 +3279,7 @@
foo = {7:T^};''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestTopLevelVar('T1', 'int');
assertNotSuggested('T2');
@@ -4107,7 +4107,7 @@
class X {foo(){A^.bar}}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestClass('A');
if (suggestConstructorsWithoutNew) {
@@ -4234,7 +4234,7 @@
addTestSource('class A {a() {"hello".to^String().length}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 8);
assertNotSuggested('length');
assertNotSuggested('A');
@@ -4428,7 +4428,7 @@
class X{}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
// Contributed by FieldFormalConstructorContributor
assertNotSuggested('b');
@@ -4698,7 +4698,7 @@
main() { C<C^> c; }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestClass('C1');
assertNotSuggested('C2');
diff --git a/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart
index 64d0df1..ae303ec 100644
--- a/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart
@@ -234,7 +234,7 @@
class _B {}
A Sew;''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLibraryPrefixes(['Soo']);
}
diff --git a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
index 16d784d..7cdb905 100644
--- a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
@@ -680,7 +680,7 @@
}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertSuggestClass('A');
assertNotSuggested('int');
@@ -705,7 +705,7 @@
}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestClass('A');
assertNotSuggested('int');
@@ -1242,7 +1242,7 @@
class Z { }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestClass('X');
@@ -1485,7 +1485,7 @@
class Z { }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('partT8');
@@ -1599,7 +1599,7 @@
main() {A a; a^..b}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('b');
assertNotSuggested('_c');
@@ -1756,7 +1756,7 @@
A Sew;''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestClass('A');
assertSuggestClass('_B');
@@ -2118,7 +2118,7 @@
main() {new String.fr^omCharCodes([]);}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 13);
// Suggested by NamedConstructorContributor
assertNotSuggested('fromCharCodes');
@@ -2863,7 +2863,7 @@
addTestSource('main() {List<int> values; for (int index in i^)}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('values', 'List<int>');
assertNotSuggested('index');
@@ -2874,7 +2874,7 @@
addTestSource('main() {List<int> values; for (int index in (i^))}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('values', 'List<int>');
assertNotSuggested('index');
@@ -2943,7 +2943,7 @@
addTestSource('main(args) {for (S^ foo in args) {}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('args');
assertNotSuggested('foo');
@@ -2990,7 +2990,7 @@
addTestSource('var x = [for (int index = 0; i^)];');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
}
@@ -3009,7 +3009,7 @@
addTestSource('var x = [for (int index = 0; index < 10; i^)];');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
}
@@ -3020,7 +3020,7 @@
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
}
@@ -3059,7 +3059,7 @@
addTestSource('main() {for (int index = 0; i^)}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
}
@@ -3081,7 +3081,7 @@
addTestSource('main() {for (int index = 0; index < 10; i^)}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
}
@@ -3093,7 +3093,7 @@
main() {for (int index = 0; index < 10; ++i^)}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
assertSuggestFunction('main', null);
@@ -3487,7 +3487,7 @@
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestField('b', null);
assertSuggestField('_c', 'X');
@@ -3825,7 +3825,7 @@
addTestSource('class C {foo(){new F^}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('Future');
assertNotSuggested('Foo');
@@ -4050,7 +4050,7 @@
main(){var a; if (a is Obj^)}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('a');
assertNotSuggested('main');
@@ -4072,7 +4072,7 @@
main() {new^ X.c();}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('c');
assertNotSuggested('_d');
@@ -4256,7 +4256,7 @@
foo = {T^''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('T1');
assertSuggestTopLevelVar('T2', 'int');
@@ -4278,7 +4278,7 @@
foo = {7:T^};''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('T1');
assertSuggestTopLevelVar('T2', 'int');
@@ -4690,7 +4690,7 @@
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
var methodA = assertSuggestMethod('_a', 'A', 'Z').element;
if (methodA != null) {
@@ -5485,7 +5485,7 @@
class X {foo(){A^.bar}}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('A');
assertSuggestClass('X');
@@ -5630,7 +5630,7 @@
addTestSource('class A {a() {"hello".to^String().length}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 8);
assertNotSuggested('length');
assertNotSuggested('A');
@@ -5939,7 +5939,7 @@
class X{}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
// Contributed by FieldFormalContributor
assertNotSuggested('b');
@@ -6145,7 +6145,7 @@
main() { C<C^> c; }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('C1');
assertSuggestClass('C2');
diff --git a/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart
index 9fcdd82..1ff2987 100644
--- a/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart
@@ -117,7 +117,7 @@
addTestSource('''
main() {new String.fr^omCharCodes([]);}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 13);
assertSuggestNamedConstructor('fromCharCodes', 'String');
assertNotSuggested('isEmpty');
diff --git a/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart
index 0cc4eba..8d36d27 100644
--- a/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart
@@ -418,7 +418,7 @@
int a;
int^ b = 1;}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('A');
assertNotSuggested('int');
@@ -441,7 +441,7 @@
i^
b = 1;}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('A');
assertNotSuggested('int');
@@ -924,7 +924,7 @@
class Z { }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('X');
@@ -1065,7 +1065,7 @@
void b() { }}
class Z { }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('partT8');
assertNotSuggested('partBoo');
@@ -1185,7 +1185,7 @@
class X{}
main() {A a; a^..b}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('b');
assertNotSuggested('_c');
@@ -1312,7 +1312,7 @@
class _B {}
A Sew;''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('A');
assertNotSuggested('_B');
@@ -1568,7 +1568,7 @@
addTestSource('''
main() {new String.fr^omCharCodes([]);}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 13);
// Suggested by NamedConstructorContributor
assertNotSuggested('fromCharCodes');
@@ -1839,7 +1839,7 @@
// DeclaredIdentifier ForEachStatement Block
addTestSource('main(args) {for (S^ foo in args) {}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('args');
assertNotSuggested('foo');
@@ -1877,7 +1877,7 @@
// SimpleIdentifier ForStatement
addTestSource('main() {for (int index = 0; i^)}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('index');
}
@@ -1897,7 +1897,7 @@
// SimpleIdentifier ForStatement
addTestSource('main() {for (int index = 0; index < 10; i^)}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('index');
}
@@ -1908,7 +1908,7 @@
void bar() { }
main() {for (int index = 0; index < 10; ++i^)}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('index');
assertNotSuggested('main');
@@ -2246,7 +2246,7 @@
addSource('/testAB.dart', 'class Foo { }');
addTestSource('class C {foo(){new F^}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('Future');
assertNotSuggested('Foo');
@@ -2450,7 +2450,7 @@
class A {int x; int y() => 0;}
main(){var a; if (a is Obj^)}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('a');
assertNotSuggested('main');
@@ -2478,7 +2478,7 @@
var m;
main() {new^ X.c();}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('c');
assertNotSuggested('_d');
@@ -2625,7 +2625,7 @@
class C2 { }
foo = {T^''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('T2');
}
@@ -2645,7 +2645,7 @@
class C2 { }
foo = {7:T^};''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('T2');
}
@@ -3551,7 +3551,7 @@
import "a.dart";
class X {foo(){A^.bar}}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('A');
assertNotSuggested('X');
@@ -3669,7 +3669,7 @@
// SimpleIdentifier MethodInvocation PropertyAccess ExpressionStatement
addTestSource('class A {a() {"hello".to^String().length}}');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 8);
assertSuggestGetter('length', 'int');
assertNotSuggested('A');
@@ -4032,7 +4032,7 @@
m(X x) {} I _n(X x) {}}
class X{}''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
// Contributed by FieldFormalConstructorContributor
assertNotSuggested('b');
@@ -4180,7 +4180,7 @@
class C<E> {}
main() { C<C^> c; }''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertNotSuggested('C1');
assertNotSuggested('C2');
diff --git a/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart
index 513eb6d..e19ca34 100644
--- a/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart
@@ -118,7 +118,7 @@
Future<void> test_import_dart() async {
addTestSource('import "d^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
assertSuggest('dart:core', csKind: CompletionSuggestionKind.IMPORT);
@@ -130,7 +130,7 @@
Future<void> test_import_dart2() async {
addTestSource('import "dart:async"; import "d^"');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
assertSuggest('dart:core', csKind: CompletionSuggestionKind.IMPORT);
@@ -165,7 +165,7 @@
addTestSource('import "..^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 2);
assertNotSuggested('completion.dart');
assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
@@ -183,7 +183,7 @@
addTestSource('import "foo/^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 4);
+ expect(replacementOffset, completionOffset - 4);
expect(replacementLength, 4);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -201,7 +201,7 @@
addTestSource('import "../^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -222,7 +222,7 @@
addTestSource('import "../^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -241,7 +241,7 @@
addTestSource('import "../b^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 4);
+ expect(replacementOffset, completionOffset - 4);
expect(replacementLength, 4);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -285,7 +285,7 @@
addTestSource('import "p^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
assertSuggest('package:foo/', csKind: CompletionSuggestionKind.IMPORT);
@@ -353,7 +353,7 @@
await computeSuggestions();
assertSuggest('package:foo/baz/too.dart',
csKind: CompletionSuggestionKind.IMPORT);
- expect(replacementOffset, completionOffset! - 16);
+ expect(replacementOffset, completionOffset - 16);
expect(replacementLength, 5 + 16);
}
@@ -366,7 +366,7 @@
addTestSource('import "p^" class');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
assertSuggest('package:bar/', csKind: CompletionSuggestionKind.IMPORT);
@@ -388,7 +388,7 @@
addTestSource('import r"p^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
assertSuggest('package:foo/', csKind: CompletionSuggestionKind.IMPORT);
@@ -447,7 +447,7 @@
Future<void> test_import_without_closing_quote_eof3() async {
addTestSource('import "d^');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
@@ -456,7 +456,7 @@
Future<void> test_import_without_closing_quote_eof4() async {
addTestSource('import "d^"');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggest('dart:', csKind: CompletionSuggestionKind.IMPORT);
assertSuggest('package:', csKind: CompletionSuggestionKind.IMPORT);
@@ -500,7 +500,7 @@
addTestSource('library x; part "..^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 2);
assertNotSuggested('completion.dart');
assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
@@ -518,7 +518,7 @@
addTestSource('library x; part "foo/^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 4);
+ expect(replacementOffset, completionOffset - 4);
expect(replacementLength, 4);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -536,7 +536,7 @@
addTestSource('library x; part "../^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -585,7 +585,7 @@
addTestSource('import "..^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 2);
assertNotSuggested('completion.dart');
assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
@@ -603,7 +603,7 @@
addTestSource('import "foo/^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 4);
+ expect(replacementOffset, completionOffset - 4);
expect(replacementLength, 4);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -621,7 +621,7 @@
addTestSource('import "../^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -639,7 +639,7 @@
addTestSource('import "../b^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 4);
+ expect(replacementOffset, completionOffset - 4);
expect(replacementLength, 4);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -675,7 +675,7 @@
addTestSource('library x; part "..^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 2);
+ expect(replacementOffset, completionOffset - 2);
expect(replacementLength, 2);
assertNotSuggested('completion.dart');
assertSuggest('other.dart', csKind: CompletionSuggestionKind.IMPORT);
@@ -693,7 +693,7 @@
addTestSource('library x; part "foo/^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 4);
+ expect(replacementOffset, completionOffset - 4);
expect(replacementLength, 4);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
@@ -711,7 +711,7 @@
addTestSource('library x; part "../^" import');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertNotSuggested('completion.dart');
assertNotSuggested('other.dart');
diff --git a/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart
index 09ab271..3b75a53 100644
--- a/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart
@@ -213,7 +213,7 @@
f() { for(AbstractCrazyNonsenseClassName a^) {} }
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestName('abstractCrazyNonsenseClassName');
assertSuggestName('crazyNonsenseClassName');
@@ -234,7 +234,7 @@
f() { for(prefix.AbstractCrazyNonsenseClassName ^) {} }
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestName('abstractCrazyNonsenseClassName');
assertSuggestName('crazyNonsenseClassName');
@@ -254,7 +254,7 @@
f() { for(prefix.AbstractCrazyNonsenseClassName a^) {} }
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 1);
+ expect(replacementOffset, completionOffset - 1);
expect(replacementLength, 1);
assertSuggestName('abstractCrazyNonsenseClassName');
assertSuggestName('crazyNonsenseClassName');
@@ -363,7 +363,7 @@
AbstractCrazyNonsenseClassName abs^
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertSuggestName('abstractCrazyNonsenseClassName');
assertSuggestName('crazyNonsenseClassName');
@@ -383,7 +383,7 @@
AbstractCrazyNonsenseClassName abs^
''');
await computeSuggestions();
- expect(replacementOffset, completionOffset! - 3);
+ expect(replacementOffset, completionOffset - 3);
expect(replacementLength, 3);
assertSuggestName('abstractCrazyNonsenseClassName');
assertSuggestName('crazyNonsenseClassName');
diff --git a/tools/VERSION b/tools/VERSION
index 6b2e44c..8c84bfb 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 13
PATCH 0
-PRERELEASE 225
+PRERELEASE 226
PRERELEASE_PATCH 0
\ No newline at end of file