Skip to content

Commit

Permalink
Literals get type annotations.
Browse files Browse the repository at this point in the history
As per the recent fix to the `always_specify_types` lint (dart-lang/linter#199), literal maps and lists are now expected to be explicitly typed.

Running that lint on the repo identifies quite a few spots to update.  This focuses on `flutter_driver` and `flutter_sprites` (somewhat arbitrarily) but the changes are fairly representative.

Note there are a number of places where I made a quick judgement on how specific to make the types.  Feedback on those is welcome.  (Especially as we move forward with more.)
  • Loading branch information
pq committed May 4, 2016
1 parent 1e09370 commit bcede8d
Show file tree
Hide file tree
Showing 11 changed files with 54 additions and 54 deletions.
4 changes: 2 additions & 2 deletions packages/flutter_driver/lib/src/driver.dart
Expand Up @@ -252,7 +252,7 @@ class FlutterDriver {
Future<Null> startTracing({List<TracingCategory> categories: _defaultCategories}) async {
assert(categories != null && categories.length > 0);
try {
await _peer.sendRequest(_kSetVMTimelineFlagsMethod, {
await _peer.sendRequest(_kSetVMTimelineFlagsMethod, <String, String>{
'recordedStreams': _tracingCategoriesToString(categories)
});
return null;
Expand All @@ -268,7 +268,7 @@ class FlutterDriver {
/// Stops recording performance traces and downloads the timeline.
Future<Timeline> stopTracingAndDownloadTimeline() async {
try {
await _peer.sendRequest(_kSetVMTimelineFlagsMethod, {'recordedStreams': '[]'});
await _peer.sendRequest(_kSetVMTimelineFlagsMethod, <String, String>{'recordedStreams': '[]'});
return new Timeline.fromJson(await _peer.sendRequest(_kGetVMTimelineMethod));
} catch(error, stackTrace) {
throw new DriverError(
Expand Down
10 changes: 5 additions & 5 deletions packages/flutter_driver/lib/src/find.dart
Expand Up @@ -91,7 +91,7 @@ abstract class SerializableFinder {
throw new DriverError('Unsupported search specification type $finderType');
}

Map<String, String> serialize() => {
Map<String, String> serialize() => <String, String>{
'finderType': finderType,
};
}
Expand All @@ -107,7 +107,7 @@ class ByTooltipMessage extends SerializableFinder {
final String text;

@override
Map<String, String> serialize() => super.serialize()..addAll({
Map<String, String> serialize() => super.serialize()..addAll(<String, String>{
'text': text,
});

Expand All @@ -126,7 +126,7 @@ class ByText extends SerializableFinder {
final String text;

@override
Map<String, String> serialize() => super.serialize()..addAll({
Map<String, String> serialize() => super.serialize()..addAll(<String, String>{
'text': text,
});

Expand Down Expand Up @@ -160,7 +160,7 @@ class ByValueKey extends SerializableFinder {
final String keyValueType;

@override
Map<String, String> serialize() => super.serialize()..addAll({
Map<String, String> serialize() => super.serialize()..addAll(<String, String>{
'keyValueString': keyValueString,
'keyValueType': keyValueType,
});
Expand Down Expand Up @@ -205,7 +205,7 @@ class GetTextResult extends Result {
}

@override
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() => <String, String>{
'text': text,
};
}
6 changes: 3 additions & 3 deletions packages/flutter_driver/lib/src/gesture.dart
Expand Up @@ -25,7 +25,7 @@ class TapResult extends Result {
}

@override
Map<String, dynamic> toJson() => {};
Map<String, dynamic> toJson() => <String, dynamic>{};
}


Expand Down Expand Up @@ -65,7 +65,7 @@ class Scroll extends CommandWithTarget {
final int frequency;

@override
Map<String, String> serialize() => super.serialize()..addAll({
Map<String, String> serialize() => super.serialize()..addAll(<String, String>{
'dx': '$dx',
'dy': '$dy',
'duration': '${duration.inMicroseconds}',
Expand All @@ -92,5 +92,5 @@ class ScrollResult extends Result {
}

@override
Map<String, dynamic> toJson() => {};
Map<String, dynamic> toJson() => <String, dynamic>{};
}
4 changes: 2 additions & 2 deletions packages/flutter_driver/lib/src/health.dart
Expand Up @@ -13,7 +13,7 @@ class GetHealth implements Command {
static GetHealth deserialize(Map<String, String> json) => new GetHealth();

@override
Map<String, String> serialize() => const {};
Map<String, String> serialize() => const <String, String>{};
}

/// Application health status.
Expand Down Expand Up @@ -42,7 +42,7 @@ class Health extends Result {
final HealthStatus status;

@override
Map<String, dynamic> toJson() => {
Map<String, dynamic> toJson() => <String, dynamic>{
'status': _healthStatusIndex.toSimpleName(status)
};
}
2 changes: 1 addition & 1 deletion packages/flutter_driver/lib/src/matcher_util.dart
Expand Up @@ -6,7 +6,7 @@ import 'package:matcher/matcher.dart';

/// Matches [value] against the [matcher].
MatchResult match(dynamic value, Matcher matcher) {
Map<dynamic, dynamic> matchState = {};
Map<dynamic, dynamic> matchState = <dynamic, dynamic>{};
if (matcher.matches(value, matchState)) {
return new MatchResult._matched();
} else {
Expand Down
24 changes: 12 additions & 12 deletions packages/flutter_driver/test/flutter_driver_test.dart
Expand Up @@ -32,7 +32,7 @@ void main() {
mockVM = new MockVM();
mockIsolate = new MockIsolate();
when(mockClient.getVM()).thenReturn(mockVM);
when(mockVM.isolates).thenReturn([mockIsolate]);
when(mockVM.isolates).thenReturn(<VMRunnableIsolate>[mockIsolate]);
when(mockIsolate.loadRunnable()).thenReturn(mockIsolate);
when(mockIsolate.invokeExtension(any, any))
.thenReturn(new Future<Map<String, dynamic>>.value(<String, String>{'status': 'ok'}));
Expand Down Expand Up @@ -126,7 +126,7 @@ void main() {

test('finds by ValueKey', () async {
when(mockIsolate.invokeExtension(any, any)).thenAnswer((Invocation i) {
expect(i.positionalArguments[1], {
expect(i.positionalArguments[1], <String, String>{
'command': 'tap',
'finderType': 'ByValueKey',
'keyValueString': 'foo',
Expand Down Expand Up @@ -169,7 +169,7 @@ void main() {
'keyValueString': '123',
'keyValueType': 'int'
});
return new Future<Map<String, dynamic>>.value({
return new Future<Map<String, dynamic>>.value(<String, String>{
'text': 'hello'
});
});
Expand All @@ -191,7 +191,7 @@ void main() {
'text': 'foo',
'timeout': '1000',
});
return new Future<Map<String, dynamic>>.value({});
return new Future<Map<String, dynamic>>.value(<String, dynamic>{});
});
await driver.waitFor(find.byTooltip('foo'), timeout: new Duration(seconds: 1));
});
Expand All @@ -203,22 +203,22 @@ void main() {
bool startTracingCalled = false;
bool stopTracingCalled = false;

when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals({'recordedStreams': '[all]'}))))
when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals(<String, dynamic>{'recordedStreams': '[all]'}))))
.thenAnswer((_) async {
startTracingCalled = true;
return null;
});

when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals({'recordedStreams': '[]'}))))
when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals(<String, dynamic>{'recordedStreams': '[]'}))))
.thenAnswer((_) async {
stopTracingCalled = true;
return null;
});

when(mockPeer.sendRequest('_getVMTimeline')).thenAnswer((_) async {
return <String, dynamic> {
'traceEvents': [
{
'traceEvents': <dynamic>[
<String, String>{
'name': 'test event'
}
],
Expand All @@ -242,22 +242,22 @@ void main() {
bool startTracingCalled = false;
bool stopTracingCalled = false;

when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals({'recordedStreams': '[Dart, GC, Compiler]'}))))
when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals(<String, dynamic>{'recordedStreams': '[Dart, GC, Compiler]'}))))
.thenAnswer((_) async {
startTracingCalled = true;
return null;
});

when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals({'recordedStreams': '[]'}))))
when(mockPeer.sendRequest('_setVMTimelineFlags', argThat(equals(<String, dynamic>{'recordedStreams': '[]'}))))
.thenAnswer((_) async {
stopTracingCalled = true;
return null;
});

when(mockPeer.sendRequest('_getVMTimeline')).thenAnswer((_) async {
return <String, dynamic> {
'traceEvents': [
{
'traceEvents': <dynamic>[
<String, String>{
'name': 'test event'
}
],
Expand Down
32 changes: 16 additions & 16 deletions packages/flutter_driver/test/src/timeline_summary_test.dart
Expand Up @@ -28,7 +28,7 @@ void main() {
group('frame_count', () {
test('counts frames', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
begin(1000), end(2000),
begin(3000), end(5000),
]).countFrames(),
Expand All @@ -39,12 +39,12 @@ void main() {

group('average_frame_build_time_millis', () {
test('returns null when there is no data', () {
expect(summarize([]).computeAverageFrameBuildTimeMillis(), isNull);
expect(summarize(<Map<String, dynamic>>[]).computeAverageFrameBuildTimeMillis(), isNull);
});

test('computes average frame build time in milliseconds', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
begin(1000), end(2000),
begin(3000), end(5000),
]).computeAverageFrameBuildTimeMillis(),
Expand All @@ -54,7 +54,7 @@ void main() {

test('skips leading "end" events', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
end(1000),
begin(2000), end(4000),
]).computeAverageFrameBuildTimeMillis(),
Expand All @@ -64,7 +64,7 @@ void main() {

test('skips trailing "begin" events', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
begin(2000), end(4000),
begin(5000),
]).computeAverageFrameBuildTimeMillis(),
Expand All @@ -75,19 +75,19 @@ void main() {

group('worst_frame_build_time_millis', () {
test('returns null when there is no data', () {
expect(summarize([]).computeWorstFrameBuildTimeMillis(), isNull);
expect(summarize(<Map<String, dynamic>>[]).computeWorstFrameBuildTimeMillis(), isNull);
});

test('computes worst frame build time in milliseconds', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
begin(1000), end(2000),
begin(3000), end(5000),
]).computeWorstFrameBuildTimeMillis(),
2.0
);
expect(
summarize([
summarize(<Map<String, dynamic>>[
begin(3000), end(5000),
begin(1000), end(2000),
]).computeWorstFrameBuildTimeMillis(),
Expand All @@ -97,7 +97,7 @@ void main() {

test('skips leading "end" events', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
end(1000),
begin(2000), end(4000),
]).computeWorstFrameBuildTimeMillis(),
Expand All @@ -107,7 +107,7 @@ void main() {

test('skips trailing "begin" events', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
begin(2000), end(4000),
begin(5000),
]).computeWorstFrameBuildTimeMillis(),
Expand All @@ -118,7 +118,7 @@ void main() {

group('computeMissedFrameBuildBudgetCount', () {
test('computes the number of missed build budgets', () {
TimelineSummary summary = summarize([
TimelineSummary summary = summarize(<Map<String, dynamic>>[
begin(1000), end(10000),
begin(11000), end(12000),
begin(13000), end(23000),
Expand All @@ -132,12 +132,12 @@ void main() {
group('summaryJson', () {
test('computes and returns summary as JSON', () {
expect(
summarize([
summarize(<Map<String, dynamic>>[
begin(1000), end(10000),
begin(11000), end(12000),
begin(13000), end(24000),
]).summaryJson,
{
<String, dynamic>{
'average_frame_build_time_millis': 7.0,
'worst_frame_build_time_millis': 11.0,
'missed_frame_build_budget_count': 2,
Expand All @@ -158,22 +158,22 @@ void main() {
});

test('writes timeline to JSON file', () async {
await summarize([{'foo': 'bar'}])
await summarize(<Map<String, String>>[<String, String>{'foo': 'bar'}])
.writeTimelineToFile('test', destinationDirectory: '/temp');
String written =
await fs.file('/temp/test.timeline.json').readAsString();
expect(written, '{"traceEvents":[{"foo":"bar"}]}');
});

test('writes summary to JSON file', () async {
await summarize([
await summarize(<Map<String, dynamic>>[
begin(1000), end(10000),
begin(11000), end(12000),
begin(13000), end(24000),
]).writeSummaryToFile('test', destinationDirectory: '/temp');
String written =
await fs.file('/temp/test.timeline_summary.json').readAsString();
expect(JSON.decode(written), {
expect(JSON.decode(written), <String, dynamic>{
'average_frame_build_time_millis': 7.0,
'worst_frame_build_time_millis': 11.0,
'missed_frame_build_budget_count': 2,
Expand Down
12 changes: 6 additions & 6 deletions packages/flutter_driver/test/src/timeline_test.dart
Expand Up @@ -8,9 +8,9 @@ import 'package:flutter_driver/src/timeline.dart';
void main() {
group('Timeline', () {
test('parses JSON', () {
Timeline timeline = new Timeline.fromJson({
'traceEvents': [
{
Timeline timeline = new Timeline.fromJson(<String, dynamic>{
'traceEvents': <Map<String, dynamic>>[
<String, dynamic>{
'name': 'test event',
'cat': 'test category',
'ph': 'B',
Expand All @@ -19,12 +19,12 @@ void main() {
'dur': 345,
'ts': 456,
'tts': 567,
'args': {
'args': <String, dynamic>{
'arg1': true,
}
},
// Tests that we don't choke on missing data
{}
<String, dynamic>{}
]
});

Expand All @@ -39,7 +39,7 @@ void main() {
expect(e1.duration, const Duration(microseconds: 345));
expect(e1.timestampMicros, 456);
expect(e1.threadTimestampMicros, 567);
expect(e1.arguments, { 'arg1': true });
expect(e1.arguments, <String, dynamic>{ 'arg1': true });

TimelineEvent e2 = timeline.events[1];
expect(e2.name, isNull);
Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_sprites/lib/src/nine_slice_sprite.dart
Expand Up @@ -92,7 +92,7 @@ class NineSliceSprite extends NodeWithSize with SpritePaint {

if (_isDirty) {
// Calcuate vertices and indices.
_vertices = [
_vertices = <Point>[
Point.origin,

];
Expand Down

0 comments on commit bcede8d

Please sign in to comment.