You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2021/03/01 22:01:15 UTC

[thrift] branch master updated: THRIFT-5285 Update http package + update to dart 2 + stylistic changes Client: Dart Patch: aaronstgeorge-wf

This is an automated email from the ASF dual-hosted git repository.

jensg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git


The following commit(s) were added to refs/heads/master by this push:
     new 1ab156a  THRIFT-5285 Update http package + update to dart 2 + stylistic changes Client: Dart Patch: aaronstgeorge-wf
1ab156a is described below

commit 1ab156ab17b6f3268a1ba57034b4d4dc96f4f306
Author: aaronstgeorge-wf <aa...@workiva.com>
AuthorDate: Thu Oct 1 17:28:28 2020 +0200

    THRIFT-5285 Update http package + update to dart 2 + stylistic changes
    Client: Dart
    Patch: aaronstgeorge-wf
    
    This closes #2251
---
 build/docker/ubuntu-bionic/Dockerfile              |   2 +-
 build/docker/ubuntu-disco/Dockerfile               |   2 +-
 build/docker/ubuntu-xenial/Dockerfile              |   2 +-
 lib/dart/.analysis_options                         |   2 -
 lib/dart/Makefile.am                               |   3 -
 lib/dart/{Makefile.am => analysis_options.yaml}    |  21 +-
 lib/dart/lib/src/browser/t_web_socket.dart         |  30 ++-
 lib/dart/lib/src/console/t_tcp_socket.dart         |  18 +-
 lib/dart/lib/src/console/t_web_socket.dart         |  22 +-
 lib/dart/lib/src/protocol/t_binary_protocol.dart   | 106 +++++++---
 lib/dart/lib/src/protocol/t_compact_protocol.dart  | 111 ++++++----
 lib/dart/lib/src/protocol/t_json_protocol.dart     | 224 +++++++++++++--------
 lib/dart/lib/src/protocol/t_message.dart           |   1 +
 .../lib/src/protocol/t_multiplexed_protocol.dart   |   5 +-
 .../lib/src/protocol/t_protocol_decorator.dart     |  41 ++++
 lib/dart/lib/src/protocol/t_protocol_util.dart     |   4 +-
 lib/dart/lib/src/serializer/t_deserializer.dart    |  15 +-
 lib/dart/lib/src/serializer/t_serializer.dart      |  14 +-
 lib/dart/lib/src/t_application_error.dart          |  13 +-
 lib/dart/lib/src/t_error.dart                      |   1 +
 .../lib/src/transport/t_buffered_transport.dart    |  20 +-
 lib/dart/lib/src/transport/t_framed_transport.dart |  30 +--
 lib/dart/lib/src/transport/t_http_transport.dart   |  14 +-
 lib/dart/lib/src/transport/t_message_reader.dart   |  24 ++-
 lib/dart/lib/src/transport/t_socket_transport.dart |  27 ++-
 lib/dart/lib/src/transport/t_transport.dart        |   2 +-
 .../lib/src/transport/t_transport_factory.dart     |   2 +-
 lib/dart/lib/thrift.dart                           |   7 +-
 lib/dart/pubspec.yaml                              |  17 +-
 lib/dart/test/protocol/t_protocol_test.dart        |  62 +++---
 lib/dart/test/serializer/serializer_test.dart      |  52 ++---
 lib/dart/test/serializer/serializer_test_data.dart |  34 ++--
 lib/dart/test/t_application_error_test.dart        |   5 +-
 .../test/transport/t_framed_transport_test.dart    |  60 +++---
 lib/dart/test/transport/t_http_transport_test.dart |  56 +++---
 .../test/transport/t_socket_transport_test.dart    | 115 ++++++-----
 lib/dart/test/transport/t_transport_test.dart      |   6 +-
 lib/dart/tool/dev.dart                             |  33 ---
 test/dart/test_client/.analysis_options            |   2 -
 tutorial/dart/Makefile.am                          |   3 -
 tutorial/dart/client/.analysis_options             |   2 -
 tutorial/dart/console_client/.analysis_options     |   2 -
 tutorial/dart/server/.analysis_options             |   2 -
 43 files changed, 706 insertions(+), 508 deletions(-)

diff --git a/build/docker/ubuntu-bionic/Dockerfile b/build/docker/ubuntu-bionic/Dockerfile
index 8487114..61364bc 100644
--- a/build/docker/ubuntu-bionic/Dockerfile
+++ b/build/docker/ubuntu-bionic/Dockerfile
@@ -118,7 +118,7 @@ RUN \
     mv deimos-openssl-1.1.0h/C/* /usr/include/dmd/druntime/import/C/ && \
     rm -rf deimos-openssl-1.1.0h
 
-ENV DART_VERSION 2.4.0-1
+ENV DART_VERSION 2.7.2-1
 RUN apt-get install -y --no-install-recommends \
       `# Dart dependencies` \
       dart=$DART_VERSION
diff --git a/build/docker/ubuntu-disco/Dockerfile b/build/docker/ubuntu-disco/Dockerfile
index a3c0b8e..1811dc9 100644
--- a/build/docker/ubuntu-disco/Dockerfile
+++ b/build/docker/ubuntu-disco/Dockerfile
@@ -118,7 +118,7 @@ RUN \
     mv deimos-openssl-1.1.0h/C/* /usr/include/dmd/druntime/import/C/ && \
     rm -rf deimos-openssl-1.1.0h
 
-ENV DART_VERSION 2.4.0-1
+ENV DART_VERSION 2.7.2-1
 RUN apt-get install -y --no-install-recommends \
       `# Dart dependencies` \
       dart=$DART_VERSION
diff --git a/build/docker/ubuntu-xenial/Dockerfile b/build/docker/ubuntu-xenial/Dockerfile
index 20ee117..e3aff74 100644
--- a/build/docker/ubuntu-xenial/Dockerfile
+++ b/build/docker/ubuntu-xenial/Dockerfile
@@ -114,7 +114,7 @@ RUN curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/v1.1.6+1.0
     mv openssl-1.1.6-1.0.1g/C/* /usr/include/dmd/druntime/import/C/ && \
     rm -rf openssl-1.1.6-1.0.1g
 
-ENV DART_VERSION 2.0.0-1
+ENV DART_VERSION 2.7.2-1
 RUN apt-get install -y --no-install-recommends \
 `# Dart dependencies` \
       dart=$DART_VERSION
diff --git a/lib/dart/.analysis_options b/lib/dart/.analysis_options
deleted file mode 100644
index a10d4c5..0000000
--- a/lib/dart/.analysis_options
+++ /dev/null
@@ -1,2 +0,0 @@
-analyzer:
-  strong-mode: true
diff --git a/lib/dart/Makefile.am b/lib/dart/Makefile.am
index 373a883..bd12a92 100644
--- a/lib/dart/Makefile.am
+++ b/lib/dart/Makefile.am
@@ -34,6 +34,3 @@ dist-hook:
 	find $(distdir) -type f -name ".packages" | xargs $(RM)
 	find $(distdir) -type d -name "packages" | xargs $(RM) -r
 
-EXTRA_DIST = \
-	.analysis_options
-
diff --git a/lib/dart/Makefile.am b/lib/dart/analysis_options.yaml
similarity index 62%
copy from lib/dart/Makefile.am
copy to lib/dart/analysis_options.yaml
index 373a883..6a8a33c 100644
--- a/lib/dart/Makefile.am
+++ b/lib/dart/analysis_options.yaml
@@ -17,23 +17,4 @@
 # under the License.
 #
 
-all-local:
-	$(DARTPUB) get
-
-clean-local:
-	$(RM) -r .pub
-	find . -type d -name ".dart_tool" | xargs $(RM) -r
-	find . -type f -name ".packages" | xargs $(RM)
-	find . -type d -name "packages" | xargs $(RM) -r
-
-check-local: all
-
-dist-hook:
-	$(RM) -r $(distdir)/.pub
-	find $(distdir) -type d -name ".dart_tool" | xargs $(RM) -r
-	find $(distdir) -type f -name ".packages" | xargs $(RM)
-	find $(distdir) -type d -name "packages" | xargs $(RM) -r
-
-EXTRA_DIST = \
-	.analysis_options
-
+include: package:workiva_analysis_options/v1.yaml
diff --git a/lib/dart/lib/src/browser/t_web_socket.dart b/lib/dart/lib/src/browser/t_web_socket.dart
index dac9ffd..1d0bfeb 100644
--- a/lib/dart/lib/src/browser/t_web_socket.dart
+++ b/lib/dart/lib/src/browser/t_web_socket.dart
@@ -18,7 +18,7 @@
 library thrift.src.browser;
 
 import 'dart:async';
-import 'package:dart2_constant/convert.dart' show base64;
+import 'dart:convert' show base64;
 import 'dart:html' show CloseEvent;
 import 'dart:html' show Event;
 import 'dart:html' show MessageEvent;
@@ -32,39 +32,45 @@ class TWebSocket implements TSocket {
   final Uri url;
 
   final StreamController<TSocketState> _onStateController;
+  @override
   Stream<TSocketState> get onState => _onStateController.stream;
 
   final StreamController<Object> _onErrorController;
+  @override
   Stream<Object> get onError => _onErrorController.stream;
 
   final StreamController<Uint8List> _onMessageController;
+  @override
   Stream<Uint8List> get onMessage => _onMessageController.stream;
 
   final List<Uint8List> _requests = [];
 
   TWebSocket(this.url)
-      : _onStateController = new StreamController.broadcast(),
-        _onErrorController = new StreamController.broadcast(),
-        _onMessageController = new StreamController.broadcast() {
+      : _onStateController = StreamController.broadcast(),
+        _onErrorController = StreamController.broadcast(),
+        _onMessageController = StreamController.broadcast() {
     if (url == null || !url.hasAuthority || !url.hasPort) {
-      throw new ArgumentError('Invalid url');
+      throw ArgumentError('Invalid url');
     }
   }
 
   WebSocket _socket;
 
+  @override
   bool get isOpen => _socket != null && _socket.readyState == WebSocket.OPEN;
 
+  @override
   bool get isClosed =>
       _socket == null || _socket.readyState == WebSocket.CLOSED;
 
+  @override
   Future open() {
     if (!isClosed) {
-      throw new TTransportError(
+      throw TTransportError(
           TTransportErrorType.ALREADY_OPEN, 'Socket already connected');
     }
 
-    _socket = new WebSocket(url.toString());
+    _socket = WebSocket(url.toString());
     _socket.onError.listen(_onError);
     _socket.onOpen.listen(_onOpen);
     _socket.onClose.listen(_onClose);
@@ -73,15 +79,17 @@ class TWebSocket implements TSocket {
     return _socket.onOpen.first;
   }
 
+  @override
   Future close() {
     if (_socket != null) {
       _socket.close();
       return _socket.onClose.first;
     } else {
-      return new Future.value();
+      return Future.value();
     }
   }
 
+  @override
   void send(Uint8List data) {
     _requests.add(data);
     _sendRequests();
@@ -104,7 +112,7 @@ class TWebSocket implements TSocket {
 
     if (_requests.isNotEmpty) {
       _onErrorController
-          .add(new StateError('Socket was closed with pending requests'));
+          .add(StateError('Socket was closed with pending requests'));
     }
     _requests.clear();
 
@@ -113,10 +121,10 @@ class TWebSocket implements TSocket {
 
   void _onMessage(MessageEvent message) {
     try {
-      Uint8List data = new Uint8List.fromList(base64.decode(message.data));
+      Uint8List data = Uint8List.fromList(base64.decode(message.data));
       _onMessageController.add(data);
     } on FormatException catch (_) {
-      var error = new TProtocolError(TProtocolErrorType.INVALID_DATA,
+      var error = TProtocolError(TProtocolErrorType.INVALID_DATA,
           "Expected a Base 64 encoded string.");
       _onErrorController.add(error);
     }
diff --git a/lib/dart/lib/src/console/t_tcp_socket.dart b/lib/dart/lib/src/console/t_tcp_socket.dart
index b714803..610d633 100644
--- a/lib/dart/lib/src/console/t_tcp_socket.dart
+++ b/lib/dart/lib/src/console/t_tcp_socket.dart
@@ -26,20 +26,23 @@ import 'package:thrift/thrift.dart';
 /// A [TSocket] backed by a [Socket] from dart:io
 class TTcpSocket implements TSocket {
   final StreamController<TSocketState> _onStateController;
+  @override
   Stream<TSocketState> get onState => _onStateController.stream;
 
   final StreamController<Object> _onErrorController;
+  @override
   Stream<Object> get onError => _onErrorController.stream;
 
   final StreamController<Uint8List> _onMessageController;
+  @override
   Stream<Uint8List> get onMessage => _onMessageController.stream;
 
   TTcpSocket(Socket socket)
-      : _onStateController = new StreamController.broadcast(),
-        _onErrorController = new StreamController.broadcast(),
-        _onMessageController = new StreamController.broadcast() {
+      : _onStateController = StreamController.broadcast(),
+        _onErrorController = StreamController.broadcast(),
+        _onMessageController = StreamController.broadcast() {
     if (socket == null) {
-      throw new ArgumentError.notNull('socket');
+      throw ArgumentError.notNull('socket');
     }
 
     _socket = socket;
@@ -48,14 +51,18 @@ class TTcpSocket implements TSocket {
 
   Socket _socket;
 
+  @override
   bool get isOpen => _socket != null;
 
+  @override
   bool get isClosed => _socket == null;
 
+  @override
   Future open() async {
     _onStateController.add(TSocketState.OPEN);
   }
 
+  @override
   Future close() async {
     if (_socket != null) {
       await _socket.close();
@@ -65,12 +72,13 @@ class TTcpSocket implements TSocket {
     _onStateController.add(TSocketState.CLOSED);
   }
 
+  @override
   void send(Uint8List data) {
     _socket.add(data);
   }
 
   void _onMessage(List<int> message) {
-    Uint8List data = new Uint8List.fromList(message);
+    Uint8List data = Uint8List.fromList(message);
     _onMessageController.add(data);
   }
 
diff --git a/lib/dart/lib/src/console/t_web_socket.dart b/lib/dart/lib/src/console/t_web_socket.dart
index c938a96..d69cafe 100644
--- a/lib/dart/lib/src/console/t_web_socket.dart
+++ b/lib/dart/lib/src/console/t_web_socket.dart
@@ -18,7 +18,7 @@
 library thrift.src.console.t_web_socket;
 
 import 'dart:async';
-import 'package:dart2_constant/convert.dart' show base64;
+import 'dart:convert' show base64;
 import 'dart:io';
 import 'dart:typed_data' show Uint8List;
 
@@ -27,20 +27,23 @@ import 'package:thrift/thrift.dart';
 /// A [TSocket] backed by a [WebSocket] from dart:io
 class TWebSocket implements TSocket {
   final StreamController<TSocketState> _onStateController;
+  @override
   Stream<TSocketState> get onState => _onStateController.stream;
 
   final StreamController<Object> _onErrorController;
+  @override
   Stream<Object> get onError => _onErrorController.stream;
 
   final StreamController<Uint8List> _onMessageController;
+  @override
   Stream<Uint8List> get onMessage => _onMessageController.stream;
 
   TWebSocket(WebSocket socket)
-      : _onStateController = new StreamController.broadcast(),
-        _onErrorController = new StreamController.broadcast(),
-        _onMessageController = new StreamController.broadcast() {
+      : _onStateController = StreamController.broadcast(),
+        _onErrorController = StreamController.broadcast(),
+        _onMessageController = StreamController.broadcast() {
     if (socket == null) {
-      throw new ArgumentError.notNull('socket');
+      throw ArgumentError.notNull('socket');
     }
 
     _socket = socket;
@@ -49,14 +52,18 @@ class TWebSocket implements TSocket {
 
   WebSocket _socket;
 
+  @override
   bool get isOpen => _socket != null;
 
+  @override
   bool get isClosed => _socket == null;
 
+  @override
   Future open() async {
     _onStateController.add(TSocketState.OPEN);
   }
 
+  @override
   Future close() async {
     if (_socket != null) {
       await _socket.close();
@@ -66,16 +73,17 @@ class TWebSocket implements TSocket {
     _onStateController.add(TSocketState.CLOSED);
   }
 
+  @override
   void send(Uint8List data) {
     _socket.add(base64.encode(data));
   }
 
   void _onMessage(String message) {
     try {
-      Uint8List data = new Uint8List.fromList(base64.decode(message));
+      Uint8List data = Uint8List.fromList(base64.decode(message));
       _onMessageController.add(data);
     } on FormatException catch (_) {
-      var error = new TProtocolError(TProtocolErrorType.INVALID_DATA,
+      var error = TProtocolError(TProtocolErrorType.INVALID_DATA,
           "Expected a Base 64 encoded string.");
       _onErrorController.add(error);
     }
diff --git a/lib/dart/lib/src/protocol/t_binary_protocol.dart b/lib/dart/lib/src/protocol/t_binary_protocol.dart
index a785d81..9f8f3bf 100644
--- a/lib/dart/lib/src/protocol/t_binary_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_binary_protocol.dart
@@ -18,13 +18,14 @@
 part of thrift;
 
 class TBinaryProtocolFactory implements TProtocolFactory<TBinaryProtocol> {
-  TBinaryProtocolFactory({this.strictRead: false, this.strictWrite: true});
+  TBinaryProtocolFactory({this.strictRead = false, this.strictWrite = true});
 
   final bool strictRead;
   final bool strictWrite;
 
+  @override
   TBinaryProtocol getProtocol(TTransport transport) {
-    return new TBinaryProtocol(transport,
+    return TBinaryProtocol(transport,
         strictRead: strictRead, strictWrite: strictWrite);
   }
 }
@@ -36,16 +37,17 @@ class TBinaryProtocol extends TProtocol {
   static const int VERSION_MASK = 0xffff0000;
   static const int VERSION_1 = 0x80010000;
 
-  static const Utf8Codec _utf8Codec = const Utf8Codec();
+  static const Utf8Codec _utf8Codec = Utf8Codec();
 
   final bool strictRead;
   final bool strictWrite;
 
   TBinaryProtocol(TTransport transport,
-      {this.strictRead: false, this.strictWrite: true})
+      {this.strictRead = false, this.strictWrite = true})
       : super(transport);
 
   /// write
+  @override
   void writeMessageBegin(TMessage message) {
     if (strictWrite) {
       int version = VERSION_1 | message.type;
@@ -59,75 +61,96 @@ class TBinaryProtocol extends TProtocol {
     }
   }
 
+  @override
   void writeMessageEnd() {}
 
+  @override
   void writeStructBegin(TStruct struct) {}
 
+  @override
   void writeStructEnd() {}
 
+  @override
   void writeFieldBegin(TField field) {
     writeByte(field.type);
     writeI16(field.id);
   }
 
+  @override
   void writeFieldEnd() {}
 
+  @override
   void writeFieldStop() {
     writeByte(TType.STOP);
   }
 
+  @override
   void writeMapBegin(TMap map) {
     writeByte(map.keyType);
     writeByte(map.valueType);
     writeI32(map.length);
   }
 
+  @override
   void writeMapEnd() {}
 
+  @override
   void writeListBegin(TList list) {
     writeByte(list.elementType);
     writeI32(list.length);
   }
 
+  @override
   void writeListEnd() {}
 
+  @override
   void writeSetBegin(TSet set) {
     writeByte(set.elementType);
     writeI32(set.length);
   }
 
+  @override
   void writeSetEnd() {}
 
+  @override
   void writeBool(bool b) {
     if (b == null) b = false;
     writeByte(b ? 1 : 0);
   }
 
-  final ByteData _byteOut = new ByteData(1);
+  final ByteData _byteOut = ByteData(1);
+
+  @override
   void writeByte(int byte) {
     if (byte == null) byte = 0;
     _byteOut.setUint8(0, byte);
     transport.write(_byteOut.buffer.asUint8List(), 0, 1);
   }
 
-  final ByteData _i16Out = new ByteData(2);
+  final ByteData _i16Out = ByteData(2);
+
+  @override
   void writeI16(int i16) {
     if (i16 == null) i16 = 0;
     _i16Out.setInt16(0, i16);
     transport.write(_i16Out.buffer.asUint8List(), 0, 2);
   }
 
-  final ByteData _i32Out = new ByteData(4);
+  final ByteData _i32Out = ByteData(4);
+
+  @override
   void writeI32(int i32) {
     if (i32 == null) i32 = 0;
     _i32Out.setInt32(0, i32);
     transport.write(_i32Out.buffer.asUint8List(), 0, 4);
   }
 
-  final Uint8List _i64Out = new Uint8List(8);
+  final Uint8List _i64Out = Uint8List(8);
+
+  @override
   void writeI64(int i64) {
     if (i64 == null) i64 = 0;
-    var i = new Int64(i64);
+    var i = Int64(i64);
     var bts = i.toBytes();
     for (var j = 0; j < 8; j++) {
       _i64Out[j] = bts[8 - j - 1];
@@ -135,19 +158,23 @@ class TBinaryProtocol extends TProtocol {
     transport.write(_i64Out, 0, 8);
   }
 
+  @override
   void writeString(String s) {
-    var bytes = s != null ? _utf8Codec.encode(s) : new Uint8List.fromList([]);
+    var bytes = s != null ? _utf8Codec.encode(s) : Uint8List.fromList([]);
     writeI32(bytes.length);
     transport.write(bytes, 0, bytes.length);
   }
 
-  final ByteData _doubleOut = new ByteData(8);
+  final ByteData _doubleOut = ByteData(8);
+
+  @override
   void writeDouble(double d) {
     if (d == null) d = 0.0;
     _doubleOut.setFloat64(0, d);
     transport.write(_doubleOut.buffer.asUint8List(), 0, 8);
   }
 
+  @override
   void writeBinary(Uint8List bytes) {
     var length = bytes.length;
     writeI32(length);
@@ -155,6 +182,7 @@ class TBinaryProtocol extends TProtocol {
   }
 
   /// read
+  @override
   TMessage readMessageBegin() {
     String name;
     int type;
@@ -164,7 +192,7 @@ class TBinaryProtocol extends TProtocol {
     if (size < 0) {
       int version = size & VERSION_MASK;
       if (version != VERSION_1) {
-        throw new TProtocolError(TProtocolErrorType.BAD_VERSION,
+        throw TProtocolError(TProtocolErrorType.BAD_VERSION,
             "Bad version in readMessageBegin: $version");
       }
       type = size & 0x000000ff;
@@ -172,109 +200,133 @@ class TBinaryProtocol extends TProtocol {
       seqid = readI32();
     } else {
       if (strictRead) {
-        throw new TProtocolError(TProtocolErrorType.BAD_VERSION,
+        throw TProtocolError(TProtocolErrorType.BAD_VERSION,
             "Missing version in readMessageBegin");
       }
       name = _readString(size);
       type = readByte();
       seqid = readI32();
     }
-    return new TMessage(name, type, seqid);
+    return TMessage(name, type, seqid);
   }
 
+  @override
   void readMessageEnd() {}
 
+  @override
   TStruct readStructBegin() {
-    return new TStruct();
+    return TStruct();
   }
 
+  @override
   void readStructEnd() {}
 
+  @override
   TField readFieldBegin() {
     String name = "";
     int type = readByte();
     int id = type != TType.STOP ? readI16() : 0;
 
-    return new TField(name, type, id);
+    return TField(name, type, id);
   }
 
+  @override
   void readFieldEnd() {}
 
+  @override
   TMap readMapBegin() {
     int keyType = readByte();
     int valueType = readByte();
     int length = readI32();
 
-    return new TMap(keyType, valueType, length);
+    return TMap(keyType, valueType, length);
   }
 
+  @override
   void readMapEnd() {}
 
+  @override
   TList readListBegin() {
     int elementType = readByte();
     int length = readI32();
 
-    return new TList(elementType, length);
+    return TList(elementType, length);
   }
 
+  @override
   void readListEnd() {}
 
+  @override
   TSet readSetBegin() {
     int elementType = readByte();
     int length = readI32();
 
-    return new TSet(elementType, length);
+    return TSet(elementType, length);
   }
 
+  @override
   void readSetEnd() {}
 
+  @override
   bool readBool() => readByte() == 1;
 
-  final Uint8List _byteIn = new Uint8List(1);
+  final Uint8List _byteIn = Uint8List(1);
+
+  @override
   int readByte() {
     transport.readAll(_byteIn, 0, 1);
     return _byteIn.buffer.asByteData().getUint8(0);
   }
 
-  final Uint8List _i16In = new Uint8List(2);
+  final Uint8List _i16In = Uint8List(2);
+
+  @override
   int readI16() {
     transport.readAll(_i16In, 0, 2);
     return _i16In.buffer.asByteData().getInt16(0);
   }
 
-  final Uint8List _i32In = new Uint8List(4);
+  final Uint8List _i32In = Uint8List(4);
+
+  @override
   int readI32() {
     transport.readAll(_i32In, 0, 4);
     return _i32In.buffer.asByteData().getInt32(0);
   }
 
-  final Uint8List _i64In = new Uint8List(8);
+  final Uint8List _i64In = Uint8List(8);
+
+  @override
   int readI64() {
     transport.readAll(_i64In, 0, 8);
-    var i = new Int64.fromBytesBigEndian(_i64In);
+    var i = Int64.fromBytesBigEndian(_i64In);
     return i.toInt();
   }
 
-  final Uint8List _doubleIn = new Uint8List(8);
+  final Uint8List _doubleIn = Uint8List(8);
+
+  @override
   double readDouble() {
     transport.readAll(_doubleIn, 0, 8);
     return _doubleIn.buffer.asByteData().getFloat64(0);
   }
 
+  @override
   String readString() {
     int size = readI32();
     return _readString(size);
   }
 
   String _readString(int size) {
-    Uint8List stringIn = new Uint8List(size);
+    Uint8List stringIn = Uint8List(size);
     transport.readAll(stringIn, 0, size);
     return _utf8Codec.decode(stringIn);
   }
 
+  @override
   Uint8List readBinary() {
     int length = readI32();
-    Uint8List binaryIn = new Uint8List(length);
+    Uint8List binaryIn = Uint8List(length);
     transport.readAll(binaryIn, 0, length);
     return binaryIn;
   }
diff --git a/lib/dart/lib/src/protocol/t_compact_protocol.dart b/lib/dart/lib/src/protocol/t_compact_protocol.dart
index ee8094f..dc26722 100644
--- a/lib/dart/lib/src/protocol/t_compact_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_compact_protocol.dart
@@ -20,8 +20,9 @@ part of thrift;
 class TCompactProtocolFactory implements TProtocolFactory<TCompactProtocol> {
   TCompactProtocolFactory();
 
+  @override
   TCompactProtocol getProtocol(TTransport transport) {
-    return new TCompactProtocol(transport);
+    return TCompactProtocol(transport);
   }
 }
 
@@ -38,7 +39,7 @@ class TCompactProtocol extends TProtocol {
   static const int TYPE_MASK = 0xE0;
   static const int TYPE_BITS = 0x07;
   static const int TYPE_SHIFT_AMOUNT = 5;
-  static final TField TSTOP = new TField("", TType.STOP, 0);
+  static final TField TSTOP = TField("", TType.STOP, 0);
 
   static const int TYPE_BOOLEAN_TRUE = 0x01;
   static const int TYPE_BOOLEAN_FALSE = 0x02;
@@ -53,7 +54,7 @@ class TCompactProtocol extends TProtocol {
   static const int TYPE_MAP = 0x0B;
   static const int TYPE_STRUCT = 0x0C;
 
-  static final List<int> _typeMap = new List.unmodifiable(new List(16)
+  static final List<int> _typeMap = List.unmodifiable(List(16)
     ..[TType.STOP] = TType.STOP
     ..[TType.BOOL] = TYPE_BOOLEAN_TRUE
     ..[TType.BYTE] = TYPE_BYTE
@@ -67,40 +68,45 @@ class TCompactProtocol extends TProtocol {
     ..[TType.MAP] = TYPE_MAP
     ..[TType.STRUCT] = TYPE_STRUCT);
 
-  static const Utf8Codec _utf8Codec = const Utf8Codec();
+  static const Utf8Codec _utf8Codec = Utf8Codec();
 
   // Pretend this is a stack
-  DoubleLinkedQueue<int> _lastField = new DoubleLinkedQueue<int>();
+  DoubleLinkedQueue<int> _lastField = DoubleLinkedQueue<int>();
   int _lastFieldId = 0;
 
-  TField _booleanField = null;
-  bool _boolValue = null;
+  TField _booleanField;
+  bool _boolValue;
 
-  final Uint8List tempList = new Uint8List(10);
-  final ByteData tempBD = new ByteData(10);
+  final Uint8List tempList = Uint8List(10);
+  final ByteData tempBD = ByteData(10);
 
   TCompactProtocol(TTransport transport) : super(transport);
 
   /// Write
+  @override
   void writeMessageBegin(TMessage message) {
     writeByte(PROTOCOL_ID);
     writeByte((VERSION & VERSION_MASK) |
         ((message.type << TYPE_SHIFT_AMOUNT) & TYPE_MASK));
-    _writeVarInt32(new Int32(message.seqid));
+    _writeVarInt32(Int32(message.seqid));
     writeString(message.name);
   }
 
+  @override
   void writeMessageEnd() {}
 
+  @override
   void writeStructBegin(TStruct struct) {
     _lastField.addLast(_lastFieldId);
     _lastFieldId = 0;
   }
 
+  @override
   void writeStructEnd() {
     _lastFieldId = _lastField.removeLast();
   }
 
+  @override
   void writeFieldBegin(TField field) {
     if (field.type == TType.BOOL) {
       _booleanField = field;
@@ -123,36 +129,45 @@ class TCompactProtocol extends TProtocol {
     _lastFieldId = field.id;
   }
 
+  @override
   void writeFieldEnd() {}
 
+  @override
   void writeFieldStop() {
     writeByte(TType.STOP);
   }
 
+  @override
   void writeMapBegin(TMap map) {
     if (map.length == 0) {
       writeByte(0);
     } else {
-      _writeVarInt32(new Int32(map.length));
+      _writeVarInt32(Int32(map.length));
       writeByte(
           _getCompactType(map.keyType) << 4 | _getCompactType(map.valueType));
     }
   }
 
+  @override
   void writeMapEnd() {}
 
+  @override
   void writeListBegin(TList list) {
     _writeCollectionBegin(list.elementType, list.length);
   }
 
+  @override
   void writeListEnd() {}
 
+  @override
   void writeSetBegin(TSet set) {
     _writeCollectionBegin(set.elementType, set.length);
   }
 
+  @override
   void writeSetEnd() {}
 
+  @override
   void writeBool(bool b) {
     if (b == null) b = false;
     if (_booleanField != null) {
@@ -164,41 +179,48 @@ class TCompactProtocol extends TProtocol {
     }
   }
 
+  @override
   void writeByte(int b) {
     if (b == null) b = 0;
     tempList[0] = b;
     transport.write(tempList, 0, 1);
   }
 
+  @override
   void writeI16(int i16) {
     if (i16 == null) i16 = 0;
-    _writeVarInt32(_int32ToZigZag(new Int32(i16)));
+    _writeVarInt32(_int32ToZigZag(Int32(i16)));
   }
 
+  @override
   void writeI32(int i32) {
     if (i32 == null) i32 = 0;
-    _writeVarInt32(_int32ToZigZag(new Int32(i32)));
+    _writeVarInt32(_int32ToZigZag(Int32(i32)));
   }
 
+  @override
   void writeI64(int i64) {
     if (i64 == null) i64 = 0;
-    _writeVarInt64(_int64ToZigZag(new Int64(i64)));
+    _writeVarInt64(_int64ToZigZag(Int64(i64)));
   }
 
+  @override
   void writeDouble(double d) {
     if (d == null) d = 0.0;
-    tempBD.setFloat64(0, d, Endianness.little);
+    tempBD.setFloat64(0, d, Endian.little);
     transport.write(tempBD.buffer.asUint8List(), 0, 8);
   }
 
+  @override
   void writeString(String str) {
     Uint8List bytes =
-        str != null ? _utf8Codec.encode(str) : new Uint8List.fromList([]);
+        str != null ? _utf8Codec.encode(str) : Uint8List.fromList([]);
     writeBinary(bytes);
   }
 
+  @override
   void writeBinary(Uint8List bytes) {
-    _writeVarInt32(new Int32(bytes.length));
+    _writeVarInt32(Int32(bytes.length));
     transport.write(bytes, 0, bytes.length);
   }
 
@@ -235,7 +257,7 @@ class TCompactProtocol extends TProtocol {
       writeByte(length << 4 | _getCompactType(elemType));
     } else {
       writeByte(0xF0 | _getCompactType(elemType));
-      _writeVarInt32(new Int32(length));
+      _writeVarInt32(Int32(length));
     }
   }
 
@@ -247,38 +269,44 @@ class TCompactProtocol extends TProtocol {
     return (n << 1) ^ (n >> 63);
   }
 
-  /// Read
+
+  // Read
+  @override
   TMessage readMessageBegin() {
     int protocolId = readByte();
     if (protocolId != PROTOCOL_ID) {
-      throw new TProtocolError(TProtocolErrorType.BAD_VERSION,
+      throw TProtocolError(TProtocolErrorType.BAD_VERSION,
           'Expected protocol id $PROTOCOL_ID but got $protocolId');
     }
     int versionAndType = readByte();
     int version = versionAndType & VERSION_MASK;
     if (version != VERSION) {
-      throw new TProtocolError(TProtocolErrorType.BAD_VERSION,
+      throw TProtocolError(TProtocolErrorType.BAD_VERSION,
           'Expected version $VERSION but got $version');
     }
     int type = (versionAndType >> TYPE_SHIFT_AMOUNT) & TYPE_BITS;
     int seqId = _readVarInt32().toInt();
     String messageName = readString();
-    return new TMessage(messageName, type, seqId);
+    return TMessage(messageName, type, seqId);
   }
 
+  @override
   void readMessageEnd() {}
 
+  @override
   TStruct readStructBegin() {
     _lastField.addLast(_lastFieldId);
     _lastFieldId = 0;
     // TODO make this a constant?
-    return new TStruct();
+    return TStruct();
   }
 
+  @override
   void readStructEnd() {
     _lastFieldId = _lastField.removeLast();
   }
 
+  @override
   TField readFieldBegin() {
     int type = readByte();
     if (type == TType.STOP) {
@@ -293,7 +321,7 @@ class TCompactProtocol extends TProtocol {
       fieldId = _lastFieldId + modifier;
     }
 
-    TField field = new TField('', _getTType(type & 0x0F), fieldId);
+    TField field = TField('', _getTType(type & 0x0F), fieldId);
     if (_isBoolType(type)) {
       _boolValue = (type & 0x0F) == TYPE_BOOLEAN_TRUE;
     }
@@ -302,8 +330,10 @@ class TCompactProtocol extends TProtocol {
     return field;
   }
 
+  @override
   void readFieldEnd() {}
 
+  @override
   TMap readMapBegin() {
     int length = _readVarInt32().toInt();
     _checkNegReadLength(length);
@@ -311,11 +341,13 @@ class TCompactProtocol extends TProtocol {
     int keyAndValueType = length == 0 ? 0 : readByte();
     int keyType = _getTType(keyAndValueType >> 4);
     int valueType = _getTType(keyAndValueType & 0x0F);
-    return new TMap(keyType, valueType, length);
+    return TMap(keyType, valueType, length);
   }
 
+  @override
   void readMapEnd() {}
 
+  @override
   TList readListBegin() {
     int lengthAndType = readByte();
     int length = (lengthAndType >> 4) & 0x0F;
@@ -324,18 +356,22 @@ class TCompactProtocol extends TProtocol {
     }
     _checkNegReadLength(length);
     int type = _getTType(lengthAndType);
-    return new TList(type, length);
+    return TList(type, length);
   }
 
+  @override
   void readListEnd() {}
 
+  @override
   TSet readSetBegin() {
     TList tlist = readListBegin();
-    return new TSet(tlist.elementType, tlist.length);
+    return TSet(tlist.elementType, tlist.length);
   }
 
+  @override
   void readSetEnd() {}
 
+  @override
   bool readBool() {
     if (_boolValue != null) {
       bool result = _boolValue;
@@ -345,43 +381,50 @@ class TCompactProtocol extends TProtocol {
     return readByte() == TYPE_BOOLEAN_TRUE;
   }
 
+  @override
   int readByte() {
     transport.readAll(tempList, 0, 1);
     return tempList.buffer.asByteData().getUint8(0);
   }
 
+  @override
   int readI16() {
     return _zigzagToInt32(_readVarInt32()).toInt();
   }
 
+  @override
   int readI32() {
     return _zigzagToInt32(_readVarInt32()).toInt();
   }
 
+  @override
   int readI64() {
     return _zigzagToInt64(_readVarInt64()).toInt();
   }
 
+  @override
   double readDouble() {
     transport.readAll(tempList, 0, 8);
-    return tempList.buffer.asByteData().getFloat64(0, Endianness.little);
+    return tempList.buffer.asByteData().getFloat64(0, Endian.little);
   }
 
+  @override
   String readString() {
     int length = _readVarInt32().toInt();
     _checkNegReadLength(length);
 
     // TODO look at using temp for small strings?
-    Uint8List buff = new Uint8List(length);
+    Uint8List buff = Uint8List(length);
     transport.readAll(buff, 0, length);
     return _utf8Codec.decode(buff);
   }
 
+  @override
   Uint8List readBinary() {
     int length = _readVarInt32().toInt();
     _checkNegReadLength(length);
 
-    Uint8List buff = new Uint8List(length);
+    Uint8List buff = Uint8List(length);
     transport.readAll(buff, 0, length);
     return buff;
   }
@@ -390,7 +433,7 @@ class TCompactProtocol extends TProtocol {
     Int32 result = Int32.ZERO;
     int shift = 0;
     while (true) {
-      Int32 b = new Int32(readByte());
+      Int32 b = Int32(readByte());
       result |= (b & 0x7f) << shift;
       if ((b & 0x80) != 0x80) break;
       shift += 7;
@@ -402,7 +445,7 @@ class TCompactProtocol extends TProtocol {
     Int64 result = Int64.ZERO;
     int shift = 0;
     while (true) {
-      Int64 b = new Int64(readByte());
+      Int64 b = Int64(readByte());
       result |= (b & 0x7f) << shift;
       if ((b & 0x80) != 0x80) break;
       shift += 7;
@@ -420,7 +463,7 @@ class TCompactProtocol extends TProtocol {
 
   void _checkNegReadLength(int length) {
     if (length < 0) {
-      throw new TProtocolError(
+      throw TProtocolError(
           TProtocolErrorType.NEGATIVE_SIZE, 'Negative length: $length');
     }
   }
@@ -457,7 +500,7 @@ class TCompactProtocol extends TProtocol {
       case TYPE_STRUCT:
         return TType.STRUCT;
       default:
-        throw new TProtocolError(
+        throw TProtocolError(
             TProtocolErrorType.INVALID_DATA, "Unknown type: ${type & 0x0F}");
     }
   }
diff --git a/lib/dart/lib/src/protocol/t_json_protocol.dart b/lib/dart/lib/src/protocol/t_json_protocol.dart
index 180568d..4aaf20c 100644
--- a/lib/dart/lib/src/protocol/t_json_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_json_protocol.dart
@@ -18,8 +18,9 @@
 part of thrift;
 
 class TJsonProtocolFactory implements TProtocolFactory<TJsonProtocol> {
+  @override
   TJsonProtocol getProtocol(TTransport transport) {
-    return new TJsonProtocol(transport);
+    return TJsonProtocol(transport);
   }
 }
 
@@ -29,18 +30,18 @@ class TJsonProtocolFactory implements TProtocolFactory<TJsonProtocol> {
 class TJsonProtocol extends TProtocol {
   static const int VERSION_1 = 1;
 
-  static const Utf8Codec utf8Codec = const Utf8Codec();
+  static const Utf8Codec utf8Codec = Utf8Codec();
 
   _BaseContext _context;
   _BaseContext _rootContext;
   _LookaheadReader _reader;
 
   final List<_BaseContext> _contextStack = [];
-  final Uint8List _tempBuffer = new Uint8List(4);
+  final Uint8List _tempBuffer = Uint8List(4);
 
   TJsonProtocol(TTransport transport) : super(transport) {
-    _rootContext = new _BaseContext(this);
-    _reader = new _LookaheadReader(this);
+    _rootContext = _BaseContext(this);
+    _reader = _LookaheadReader(this);
     _resetContext();
   }
 
@@ -63,8 +64,8 @@ class TJsonProtocol extends TProtocol {
   void _readJsonSyntaxChar(int charByte) {
     int byte = _reader.read();
     if (byte != charByte) {
-      throw new TProtocolError(TProtocolErrorType.INVALID_DATA,
-          "Expected character ${new String.fromCharCode(charByte)} but found: ${new String.fromCharCode(byte)}");
+      throw TProtocolError(TProtocolErrorType.INVALID_DATA,
+          "Expected character ${String.fromCharCode(charByte)} but found: ${String.fromCharCode(byte)}");
     }
   }
 
@@ -77,7 +78,7 @@ class TJsonProtocol extends TProtocol {
       byte += 10;
       return byte - _Constants.HEX_A_BYTES[0];
     } else {
-      throw new TProtocolError(
+      throw TProtocolError(
           TProtocolErrorType.INVALID_DATA, "Expected hex character");
     }
   }
@@ -164,7 +165,7 @@ class TJsonProtocol extends TProtocol {
   void _writeJsonObjectStart() {
     _context.write();
     transport.writeAll(_Constants.LBRACE_BYTES);
-    _pushContext(new _PairContext(this));
+    _pushContext(_PairContext(this));
   }
 
   void _writeJsonObjectEnd() {
@@ -175,7 +176,7 @@ class TJsonProtocol extends TProtocol {
   void _writeJsonArrayStart() {
     _context.write();
     transport.writeAll(_Constants.LBRACKET_BYTES);
-    _pushContext(new _ListContext(this));
+    _pushContext(_ListContext(this));
   }
 
   void _writeJsonArrayEnd() {
@@ -183,6 +184,7 @@ class TJsonProtocol extends TProtocol {
     transport.writeAll(_Constants.RBRACKET_BYTES);
   }
 
+  @override
   void writeMessageBegin(TMessage message) {
     _resetContext();
 
@@ -194,30 +196,37 @@ class TJsonProtocol extends TProtocol {
     _writeJsonInteger(message.seqid);
   }
 
+  @override
   void writeMessageEnd() {
     _writeJsonArrayEnd();
   }
 
+  @override
   void writeStructBegin(TStruct struct) {
     _writeJsonObjectStart();
   }
 
+  @override
   void writeStructEnd() {
     _writeJsonObjectEnd();
   }
 
+  @override
   void writeFieldBegin(TField field) {
     _writeJsonInteger(field.id);
     _writeJsonObjectStart();
     _writeJsonString(_Constants.getTypeNameBytesForTypeId(field.type));
   }
 
+  @override
   void writeFieldEnd() {
     _writeJsonObjectEnd();
   }
 
+  @override
   void writeFieldStop() {}
 
+  @override
   void writeMapBegin(TMap map) {
     _writeJsonArrayStart();
     _writeJsonString(_Constants.getTypeNameBytesForTypeId(map.keyType));
@@ -226,61 +235,74 @@ class TJsonProtocol extends TProtocol {
     _writeJsonObjectStart();
   }
 
+  @override
   void writeMapEnd() {
     _writeJsonObjectEnd();
     _writeJsonArrayEnd();
   }
 
+  @override
   void writeListBegin(TList list) {
     _writeJsonArrayStart();
     _writeJsonString(_Constants.getTypeNameBytesForTypeId(list.elementType));
     _writeJsonInteger(list.length);
   }
 
+  @override
   void writeListEnd() {
     _writeJsonArrayEnd();
   }
 
+  @override
   void writeSetBegin(TSet set) {
     _writeJsonArrayStart();
     _writeJsonString(_Constants.getTypeNameBytesForTypeId(set.elementType));
     _writeJsonInteger(set.length);
   }
 
+  @override
   void writeSetEnd() {
     _writeJsonArrayEnd();
   }
 
+  @override
   void writeBool(bool b) {
     if (b == null) b = false;
     _writeJsonInteger(b ? 1 : 0);
   }
 
+  @override
   void writeByte(int b) {
     _writeJsonInteger(b);
   }
 
+  @override
   void writeI16(int i16) {
     _writeJsonInteger(i16);
   }
 
+  @override
   void writeI32(int i32) {
     _writeJsonInteger(i32);
   }
 
+  @override
   void writeI64(int i64) {
     _writeJsonInteger(i64);
   }
 
+  @override
   void writeDouble(double d) {
     _writeJsonDouble(d);
   }
 
+  @override
   void writeString(String s) {
-    var bytes = s != null ? utf8Codec.encode(s) : new Uint8List.fromList([]);
+    var bytes = s != null ? utf8Codec.encode(s) : Uint8List.fromList([]);
     _writeJsonString(bytes);
   }
 
+  @override
   void writeBinary(Uint8List bytes) {
     _writeJsonBase64(bytes);
   }
@@ -290,8 +312,7 @@ class TJsonProtocol extends TProtocol {
   bool _isLowSurrogate(int b) => b >= 0xDC00 && b <= 0xDFFF;
 
   /// read
-
-  Uint8List _readJsonString({bool skipContext: false}) {
+  Uint8List _readJsonString({bool skipContext = false}) {
     List<int> bytes = [];
     List<int> codeunits = [];
 
@@ -316,10 +337,10 @@ class TJsonProtocol extends TProtocol {
 
       // distinguish between \uXXXX and control chars like \n
       if (byte != _Constants.ESCSEQ_BYTES[1]) {
-        String char = new String.fromCharCode(byte);
+        String char = String.fromCharCode(byte);
         int offset = _Constants.ESCAPE_CHARS.indexOf(char);
         if (offset == -1) {
-          throw new TProtocolError(
+          throw TProtocolError(
               TProtocolErrorType.INVALID_DATA, "Expected control char");
         }
         byte = _Constants.ESCAPE_CHAR_VALS.codeUnitAt(offset);
@@ -329,46 +350,44 @@ class TJsonProtocol extends TProtocol {
 
       // it's \uXXXX
       transport.readAll(_tempBuffer, 0, 4);
-      byte = (_hexVal(_tempBuffer[0]) << 12)
-        + (_hexVal(_tempBuffer[1]) << 8)
-        + (_hexVal(_tempBuffer[2]) << 4)
-        + _hexVal(_tempBuffer[3]);
+      byte = (_hexVal(_tempBuffer[0]) << 12) +
+          (_hexVal(_tempBuffer[1]) << 8) +
+          (_hexVal(_tempBuffer[2]) << 4) +
+          _hexVal(_tempBuffer[3]);
       if (_isHighSurrogate(byte)) {
         if (codeunits.isNotEmpty) {
-          throw new TProtocolError(
+          throw TProtocolError(
               TProtocolErrorType.INVALID_DATA, "Expected low surrogate");
         }
         codeunits.add(byte);
-      }
-      else if (_isLowSurrogate(byte)) {
+      } else if (_isLowSurrogate(byte)) {
         if (codeunits.isEmpty) {
-          throw new TProtocolError(
+          throw TProtocolError(
               TProtocolErrorType.INVALID_DATA, "Expected high surrogate");
         }
         codeunits.add(byte);
-        bytes.addAll(utf8Codec.encode(new String.fromCharCodes(codeunits)));
+        bytes.addAll(utf8Codec.encode(String.fromCharCodes(codeunits)));
         codeunits.clear();
-      }
-      else {
-        bytes.addAll(utf8Codec.encode(new String.fromCharCode(byte)));
+      } else {
+        bytes.addAll(utf8Codec.encode(String.fromCharCode(byte)));
       }
     }
 
     if (codeunits.isNotEmpty) {
-      throw new TProtocolError(
+      throw TProtocolError(
           TProtocolErrorType.INVALID_DATA, "Expected low surrogate");
     }
 
-    return new Uint8List.fromList(bytes);
+    return Uint8List.fromList(bytes);
   }
 
   String _readJsonNumericChars() {
-    StringBuffer buffer = new StringBuffer();
+    StringBuffer buffer = StringBuffer();
     while (true) {
       if (!_Constants.isJsonNumeric(_reader.peek())) {
         break;
       }
-      buffer.write(new String.fromCharCode(_reader.read()));
+      buffer.write(String.fromCharCode(_reader.read()));
     }
     return buffer.toString();
   }
@@ -387,7 +406,7 @@ class TJsonProtocol extends TProtocol {
     try {
       return int.parse(str);
     } on FormatException catch (_) {
-      throw new TProtocolError(TProtocolErrorType.INVALID_DATA,
+      throw TProtocolError(TProtocolErrorType.INVALID_DATA,
           "Bad data encounted in numeric data");
     }
   }
@@ -397,12 +416,15 @@ class TJsonProtocol extends TProtocol {
 
     if (_reader.peek() == _Constants.QUOTE_BYTES[0]) {
       Uint8List bytes = _readJsonString(skipContext: true);
-      double d = double.parse(utf8Codec.decode(bytes), (_) {
-        throw new TProtocolError(TProtocolErrorType.INVALID_DATA,
+      double d;
+      try {
+        d = double.tryParse(utf8Codec.decode(bytes));
+      } catch (_) {
+        throw TProtocolError(TProtocolErrorType.INVALID_DATA,
             "Bad data encounted in numeric data");
-      });
+      }
       if (!_context.escapeNumbers && !d.isNaN && !d.isInfinite) {
-        throw new TProtocolError(TProtocolErrorType.INVALID_DATA,
+        throw TProtocolError(TProtocolErrorType.INVALID_DATA,
             "Numeric data unexpectedly quoted");
       }
       return d;
@@ -411,10 +433,12 @@ class TJsonProtocol extends TProtocol {
         // This will throw - we should have had a quote if escapeNumbers == true
         _readJsonSyntaxChar(_Constants.QUOTE_BYTES[0]);
       }
-      return double.parse(_readJsonNumericChars(), (_) {
-        throw new TProtocolError(TProtocolErrorType.INVALID_DATA,
+      try {
+        return double.parse(_readJsonNumericChars());
+      } on FormatException catch (_) {
+        throw TProtocolError(TProtocolErrorType.INVALID_DATA,
             "Bad data encounted in numeric data");
-      });
+      }
     }
   }
 
@@ -423,13 +447,13 @@ class TJsonProtocol extends TProtocol {
     Uint8List base64Bytes = _readJsonString();
     String base64text = utf8Codec.decode(base64Bytes);
 
-    return new Uint8List.fromList(base64.decode(base64text));
+    return Uint8List.fromList(base64.decode(base64text));
   }
 
   void _readJsonObjectStart() {
     _context.read();
     _readJsonSyntaxChar(_Constants.LBRACE_BYTES[0]);
-    _pushContext(new _PairContext(this));
+    _pushContext(_PairContext(this));
   }
 
   void _readJsonObjectEnd() {
@@ -440,7 +464,7 @@ class TJsonProtocol extends TProtocol {
   void _readJsonArrayStart() {
     _context.read();
     _readJsonSyntaxChar(_Constants.LBRACKET_BYTES[0]);
-    _pushContext(new _ListContext(this));
+    _pushContext(_ListContext(this));
   }
 
   void _readJsonArrayEnd() {
@@ -448,12 +472,13 @@ class TJsonProtocol extends TProtocol {
     _popContext();
   }
 
+  @override
   TMessage readMessageBegin() {
     _resetContext();
 
     _readJsonArrayStart();
     if (_readJsonInteger() != VERSION_1) {
-      throw new TProtocolError(
+      throw TProtocolError(
           TProtocolErrorType.BAD_VERSION, "Message contained bad version.");
     }
 
@@ -462,22 +487,26 @@ class TJsonProtocol extends TProtocol {
     int type = _readJsonInteger();
     int seqid = _readJsonInteger();
 
-    return new TMessage(name, type, seqid);
+    return TMessage(name, type, seqid);
   }
 
+  @override
   void readMessageEnd() {
     _readJsonArrayEnd();
   }
 
+  @override
   TStruct readStructBegin() {
     _readJsonObjectStart();
-    return new TStruct();
+    return TStruct();
   }
 
+  @override
   void readStructEnd() {
     _readJsonObjectEnd();
   }
 
+  @override
   TField readFieldBegin() {
     String name = "";
     int type = TType.STOP;
@@ -489,13 +518,15 @@ class TJsonProtocol extends TProtocol {
       type = _Constants.getTypeIdForTypeName(_readJsonString());
     }
 
-    return new TField(name, type, id);
+    return TField(name, type, id);
   }
 
+  @override
   void readFieldEnd() {
     _readJsonObjectEnd();
   }
 
+  @override
   TMap readMapBegin() {
     _readJsonArrayStart();
     int keyType = _Constants.getTypeIdForTypeName(_readJsonString());
@@ -503,91 +534,103 @@ class TJsonProtocol extends TProtocol {
     int length = _readJsonInteger();
     _readJsonObjectStart();
 
-    return new TMap(keyType, valueType, length);
+    return TMap(keyType, valueType, length);
   }
 
+  @override
   void readMapEnd() {
     _readJsonObjectEnd();
     _readJsonArrayEnd();
   }
 
+  @override
   TList readListBegin() {
     _readJsonArrayStart();
     int elementType = _Constants.getTypeIdForTypeName(_readJsonString());
     int length = _readJsonInteger();
 
-    return new TList(elementType, length);
+    return TList(elementType, length);
   }
 
+  @override
   void readListEnd() {
     _readJsonArrayEnd();
   }
 
+  @override
   TSet readSetBegin() {
     _readJsonArrayStart();
     int elementType = _Constants.getTypeIdForTypeName(_readJsonString());
     int length = _readJsonInteger();
 
-    return new TSet(elementType, length);
+    return TSet(elementType, length);
   }
 
+  @override
   void readSetEnd() {
     _readJsonArrayEnd();
   }
 
+  @override
   bool readBool() {
     return _readJsonInteger() == 0 ? false : true;
   }
 
+  @override
   int readByte() {
     return _readJsonInteger();
   }
 
+  @override
   int readI16() {
     return _readJsonInteger();
   }
 
+  @override
   int readI32() {
     return _readJsonInteger();
   }
 
+  @override
   int readI64() {
     return _readJsonInteger();
   }
 
+  @override
   double readDouble() {
     return _readJsonDouble();
   }
 
+  @override
   String readString() {
     return utf8Codec.decode(_readJsonString());
   }
 
+  @override
   Uint8List readBinary() {
-    return new Uint8List.fromList(_readJsonBase64());
+    return Uint8List.fromList(_readJsonBase64());
   }
 }
 
 class _Constants {
-  static const utf8codec = const Utf8Codec();
-
-  static final Uint8List HEX_0_BYTES = new Uint8List.fromList('0'.codeUnits);
-  static final Uint8List HEX_9_BYTES = new Uint8List.fromList('9'.codeUnits);
-  static final Uint8List HEX_A_BYTES = new Uint8List.fromList('a'.codeUnits);
-  static final Uint8List HEX_F_BYTES = new Uint8List.fromList('f'.codeUnits);
-  static final Uint8List COMMA_BYTES = new Uint8List.fromList(','.codeUnits);
-  static final Uint8List COLON_BYTES = new Uint8List.fromList(':'.codeUnits);
-  static final Uint8List LBRACE_BYTES = new Uint8List.fromList('{'.codeUnits);
-  static final Uint8List RBRACE_BYTES = new Uint8List.fromList('}'.codeUnits);
-  static final Uint8List LBRACKET_BYTES = new Uint8List.fromList('['.codeUnits);
-  static final Uint8List RBRACKET_BYTES = new Uint8List.fromList(']'.codeUnits);
-  static final Uint8List QUOTE_BYTES = new Uint8List.fromList('"'.codeUnits);
-  static final Uint8List BACKSLASH_BYTES =
-      new Uint8List.fromList(r'\'.codeUnits);
-
-  static final ESCSEQ_BYTES = new Uint8List.fromList(r'\u00'.codeUnits);
-
-  static final Uint8List JSON_CHAR_TABLE = new Uint8List.fromList([
+  static const utf8codec = Utf8Codec();
+
+  static final Uint8List HEX_0_BYTES = Uint8List.fromList('0'.codeUnits);
+  static final Uint8List HEX_9_BYTES = Uint8List.fromList('9'.codeUnits);
+  static final Uint8List HEX_A_BYTES = Uint8List.fromList('a'.codeUnits);
+  static final Uint8List HEX_F_BYTES = Uint8List.fromList('f'.codeUnits);
+  static final Uint8List COMMA_BYTES = Uint8List.fromList(','.codeUnits);
+  static final Uint8List COLON_BYTES = Uint8List.fromList(':'.codeUnits);
+  static final Uint8List LBRACE_BYTES = Uint8List.fromList('{'.codeUnits);
+  static final Uint8List RBRACE_BYTES = Uint8List.fromList('}'.codeUnits);
+  static final Uint8List LBRACKET_BYTES = Uint8List.fromList('['.codeUnits);
+  static final Uint8List RBRACKET_BYTES = Uint8List.fromList(']'.codeUnits);
+  static final Uint8List QUOTE_BYTES = Uint8List.fromList('"'.codeUnits);
+  static final Uint8List BACKSLASH_BYTES = Uint8List.fromList(r'\'.codeUnits);
+
+  static final ESCSEQ_BYTES = Uint8List.fromList(r'\u00'.codeUnits);
+
+  static final Uint8List JSON_CHAR_TABLE = Uint8List.fromList([
     0, 0, 0, 0, 0, 0, 0, 0, // 8 bytes
     'b'.codeUnitAt(0), 't'.codeUnitAt(0), 'n'.codeUnitAt(0), 0, // 4 bytes
     'f'.codeUnitAt(0), 'r'.codeUnitAt(0), 0, 0, // 4 bytes
@@ -612,31 +655,30 @@ class _Constants {
   static const String NAME_LIST = 'lst';
   static const String NAME_SET = 'set';
 
-  static final Map<int, Uint8List> _TYPE_ID_TO_NAME_BYTES =
-      new Map.unmodifiable({
-    TType.BOOL: new Uint8List.fromList(NAME_BOOL.codeUnits),
-    TType.BYTE: new Uint8List.fromList(NAME_BYTE.codeUnits),
-    TType.I16: new Uint8List.fromList(NAME_I16.codeUnits),
-    TType.I32: new Uint8List.fromList(NAME_I32.codeUnits),
-    TType.I64: new Uint8List.fromList(NAME_I64.codeUnits),
-    TType.DOUBLE: new Uint8List.fromList(NAME_DOUBLE.codeUnits),
-    TType.STRING: new Uint8List.fromList(NAME_STRING.codeUnits),
-    TType.STRUCT: new Uint8List.fromList(NAME_STRUCT.codeUnits),
-    TType.MAP: new Uint8List.fromList(NAME_MAP.codeUnits),
-    TType.SET: new Uint8List.fromList(NAME_SET.codeUnits),
-    TType.LIST: new Uint8List.fromList(NAME_LIST.codeUnits)
+  static final Map<int, Uint8List> _TYPE_ID_TO_NAME_BYTES = Map.unmodifiable({
+    TType.BOOL: Uint8List.fromList(NAME_BOOL.codeUnits),
+    TType.BYTE: Uint8List.fromList(NAME_BYTE.codeUnits),
+    TType.I16: Uint8List.fromList(NAME_I16.codeUnits),
+    TType.I32: Uint8List.fromList(NAME_I32.codeUnits),
+    TType.I64: Uint8List.fromList(NAME_I64.codeUnits),
+    TType.DOUBLE: Uint8List.fromList(NAME_DOUBLE.codeUnits),
+    TType.STRING: Uint8List.fromList(NAME_STRING.codeUnits),
+    TType.STRUCT: Uint8List.fromList(NAME_STRUCT.codeUnits),
+    TType.MAP: Uint8List.fromList(NAME_MAP.codeUnits),
+    TType.SET: Uint8List.fromList(NAME_SET.codeUnits),
+    TType.LIST: Uint8List.fromList(NAME_LIST.codeUnits)
   });
 
   static Uint8List getTypeNameBytesForTypeId(int typeId) {
     if (!_TYPE_ID_TO_NAME_BYTES.containsKey(typeId)) {
-      throw new TProtocolError(
+      throw TProtocolError(
           TProtocolErrorType.NOT_IMPLEMENTED, "Unrecognized type");
     }
 
     return _TYPE_ID_TO_NAME_BYTES[typeId];
   }
 
-  static final Map<String, int> _NAME_TO_TYPE_ID = new Map.unmodifiable({
+  static final Map<String, int> _NAME_TO_TYPE_ID = Map.unmodifiable({
     NAME_BOOL: TType.BOOL,
     NAME_BYTE: TType.BYTE,
     NAME_I16: TType.I16,
@@ -653,14 +695,14 @@ class _Constants {
   static int getTypeIdForTypeName(Uint8List bytes) {
     String name = utf8codec.decode(bytes);
     if (!_NAME_TO_TYPE_ID.containsKey(name)) {
-      throw new TProtocolError(
+      throw TProtocolError(
           TProtocolErrorType.NOT_IMPLEMENTED, "Unrecognized type");
     }
 
     return _NAME_TO_TYPE_ID[name];
   }
 
-  static final Set<int> _JSON_NUMERICS = new Set.from([
+  static final Set<int> _JSON_NUMERICS = Set.from([
     '+'.codeUnitAt(0),
     '-'.codeUnitAt(0),
     '.'.codeUnitAt(0),
@@ -689,7 +731,7 @@ class _LookaheadReader {
   _LookaheadReader(this.protocol);
 
   bool _hasData = false;
-  final Uint8List _data = new Uint8List(1);
+  final Uint8List _data = Uint8List(1);
 
   int read() {
     if (_hasData) {
@@ -722,6 +764,7 @@ class _BaseContext {
 
   bool get escapeNumbers => false;
 
+  @override
   String toString() => 'BaseContext';
 }
 
@@ -730,6 +773,7 @@ class _ListContext extends _BaseContext {
 
   bool _first = true;
 
+  @override
   void write() {
     if (_first) {
       _first = false;
@@ -738,6 +782,7 @@ class _ListContext extends _BaseContext {
     }
   }
 
+  @override
   void read() {
     if (_first) {
       _first = false;
@@ -746,6 +791,7 @@ class _ListContext extends _BaseContext {
     }
   }
 
+  @override
   String toString() => 'ListContext';
 }
 
@@ -758,6 +804,7 @@ class _PairContext extends _BaseContext {
   Uint8List get symbolBytes =>
       _colon ? _Constants.COLON_BYTES : _Constants.COMMA_BYTES;
 
+  @override
   void write() {
     if (_first) {
       _first = false;
@@ -768,6 +815,7 @@ class _PairContext extends _BaseContext {
     }
   }
 
+  @override
   void read() {
     if (_first) {
       _first = false;
@@ -778,7 +826,9 @@ class _PairContext extends _BaseContext {
     }
   }
 
+  @override
   bool get escapeNumbers => _colon;
 
+  @override
   String toString() => 'PairContext';
 }
diff --git a/lib/dart/lib/src/protocol/t_message.dart b/lib/dart/lib/src/protocol/t_message.dart
index cc7b886..b985deb 100644
--- a/lib/dart/lib/src/protocol/t_message.dart
+++ b/lib/dart/lib/src/protocol/t_message.dart
@@ -31,5 +31,6 @@ class TMessage {
 
   TMessage(this.name, this.type, this.seqid);
 
+  @override
   String toString() => "<TMessage name: '$name' type: $type seqid: $seqid>";
 }
diff --git a/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart b/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart
index 078a6d7..693e58b 100644
--- a/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart
@@ -27,15 +27,16 @@ class TMultiplexedProtocol extends TProtocolDecorator {
       : _serviceName = serviceName,
         super(protocol) {
     if (serviceName == null) {
-      throw new ArgumentError.notNull("serviceName");
+      throw ArgumentError.notNull("serviceName");
     }
   }
 
+  @override
   void writeMessageBegin(TMessage message) {
     if (message.type == TMessageType.CALL ||
         message.type == TMessageType.ONEWAY) {
       String name = _serviceName + SEPARATOR + message.name;
-      message = new TMessage(name, message.type, message.seqid);
+      message = TMessage(name, message.type, message.seqid);
     }
 
     super.writeMessageBegin(message);
diff --git a/lib/dart/lib/src/protocol/t_protocol_decorator.dart b/lib/dart/lib/src/protocol/t_protocol_decorator.dart
index 9cd02f6..9389ec7 100644
--- a/lib/dart/lib/src/protocol/t_protocol_decorator.dart
+++ b/lib/dart/lib/src/protocol/t_protocol_decorator.dart
@@ -29,122 +29,163 @@ class TProtocolDecorator extends TProtocol {
 
   /// Write
 
+  @override
   void writeMessageBegin(TMessage message) {
     _protocol.writeMessageBegin(message);
   }
 
+  @override
   void writeMessageEnd() {
     _protocol.writeMessageEnd();
   }
 
+  @override
   void writeStructBegin(TStruct struct) {
     _protocol.writeStructBegin(struct);
   }
 
+  @override
   void writeStructEnd() {
     _protocol.writeStructEnd();
   }
 
+  @override
   void writeFieldBegin(TField field) {
     _protocol.writeFieldBegin(field);
   }
 
+  @override
   void writeFieldEnd() {
     _protocol.writeFieldEnd();
   }
 
+  @override
   void writeFieldStop() {
     _protocol.writeFieldStop();
   }
 
+  @override
   void writeMapBegin(TMap map) {
     _protocol.writeMapBegin(map);
   }
 
+  @override
   void writeMapEnd() {
     _protocol.writeMapEnd();
   }
 
+  @override
   void writeListBegin(TList list) {
     _protocol.writeListBegin(list);
   }
 
+  @override
   void writeListEnd() {
     _protocol.writeListEnd();
   }
 
+  @override
   void writeSetBegin(TSet set) {
     _protocol.writeSetBegin(set);
   }
 
+  @override
   void writeSetEnd() {
     _protocol.writeSetEnd();
   }
 
+  @override
   void writeBool(bool b) {
     _protocol.writeBool(b);
   }
 
+  @override
   void writeByte(int b) {
     _protocol.writeByte(b);
   }
 
+  @override
   void writeI16(int i16) {
     _protocol.writeI16(i16);
   }
 
+  @override
   void writeI32(int i32) {
     _protocol.writeI32(i32);
   }
 
+  @override
   void writeI64(int i64) {
     _protocol.writeI64(i64);
   }
 
+  @override
   void writeDouble(double d) {
     _protocol.writeDouble(d);
   }
 
+  @override
   void writeString(String str) {
     _protocol.writeString(str);
   }
 
+  @override
   void writeBinary(Uint8List bytes) {
     _protocol.writeBinary(bytes);
   }
 
   /// Read
+  @override
   TMessage readMessageBegin() => _protocol.readMessageBegin();
+  @override
   void readMessageEnd() => _protocol.readMessageEnd();
 
+  @override
   TStruct readStructBegin() => _protocol.readStructBegin();
+  @override
   void readStructEnd() => _protocol.readStructEnd();
 
+  @override
   TField readFieldBegin() => _protocol.readFieldBegin();
+  @override
   void readFieldEnd() => _protocol.readFieldEnd();
 
+  @override
   TMap readMapBegin() => _protocol.readMapBegin();
+  @override
   void readMapEnd() => _protocol.readMapEnd();
 
+  @override
   TList readListBegin() => _protocol.readListBegin();
+  @override
   void readListEnd() => _protocol.readListEnd();
 
+  @override
   TSet readSetBegin() => _protocol.readSetBegin();
+  @override
   void readSetEnd() => _protocol.readSetEnd();
 
+  @override
   bool readBool() => _protocol.readBool();
 
+  @override
   int readByte() => _protocol.readByte();
 
+  @override
   int readI16() => _protocol.readI16();
 
+  @override
   int readI32() => _protocol.readI32();
 
+  @override
   int readI64() => _protocol.readI64();
 
+  @override
   double readDouble() => _protocol.readDouble();
 
+  @override
   String readString() => _protocol.readString();
 
+  @override
   Uint8List readBinary() => _protocol.readBinary();
 }
diff --git a/lib/dart/lib/src/protocol/t_protocol_util.dart b/lib/dart/lib/src/protocol/t_protocol_util.dart
index 841ea82..b57b2c6 100644
--- a/lib/dart/lib/src/protocol/t_protocol_util.dart
+++ b/lib/dart/lib/src/protocol/t_protocol_util.dart
@@ -29,7 +29,7 @@ class TProtocolUtil {
 
   static _skip(TProtocol prot, int type, int recursionLimit) {
     if (recursionLimit <= 0) {
-      throw new TProtocolError(
+      throw TProtocolError(
           TProtocolErrorType.DEPTH_LIMIT, "Depth limit exceeded");
     }
 
@@ -101,7 +101,7 @@ class TProtocolUtil {
         break;
 
       default:
-        throw new TProtocolError(TProtocolErrorType.INVALID_DATA, "Invalid data");
+        throw TProtocolError(TProtocolErrorType.INVALID_DATA, "Invalid data");
     }
   }
 }
diff --git a/lib/dart/lib/src/serializer/t_deserializer.dart b/lib/dart/lib/src/serializer/t_deserializer.dart
index aefbee2..c01ab6b 100644
--- a/lib/dart/lib/src/serializer/t_deserializer.dart
+++ b/lib/dart/lib/src/serializer/t_deserializer.dart
@@ -18,30 +18,29 @@
 part of thrift;
 
 class TDeserializer {
-  final message = new TMessage('Deserializer', TMessageType.ONEWAY, 1);
+  final message = TMessage('Deserializer', TMessageType.ONEWAY, 1);
   TBufferedTransport transport;
   TProtocol protocol;
 
   TDeserializer({TProtocolFactory protocolFactory}) {
-    this.transport = new TBufferedTransport();
-    
+    this.transport = TBufferedTransport();
+
     if (protocolFactory == null) {
-      protocolFactory = new TBinaryProtocolFactory();
+      protocolFactory = TBinaryProtocolFactory();
     }
-    
+
     this.protocol = protocolFactory.getProtocol(this.transport);
   }
 
   void read(TBase base, Uint8List data) {
     transport.writeAll(data);
-    
+
     transport.flush();
-    
+
     base.read(protocol);
   }
 
   void readString(TBase base, String data) {
-    
     transport.writeAll(base64.decode(data));
     transport.flush();
 
diff --git a/lib/dart/lib/src/serializer/t_serializer.dart b/lib/dart/lib/src/serializer/t_serializer.dart
index feec822..fb89789 100644
--- a/lib/dart/lib/src/serializer/t_serializer.dart
+++ b/lib/dart/lib/src/serializer/t_serializer.dart
@@ -18,15 +18,15 @@
 part of thrift;
 
 class TSerializer {
-  final message = new TMessage('Serializer', TMessageType.ONEWAY, 1);
+  final message = TMessage('Serializer', TMessageType.ONEWAY, 1);
   TBufferedTransport transport;
   TProtocol protocol;
 
   TSerializer({TProtocolFactory protocolFactory}) {
-    this.transport = new TBufferedTransport();
-    
+    this.transport = TBufferedTransport();
+
     if (protocolFactory == null) {
-      protocolFactory = new TBinaryProtocolFactory();
+      protocolFactory = TBinaryProtocolFactory();
     }
 
     this.protocol = protocolFactory.getProtocol(this.transport);
@@ -34,15 +34,15 @@ class TSerializer {
 
   Uint8List write(TBase base) {
     base.write(protocol);
-    
+
     return transport.consumeWriteBuffer();
   }
 
   String writeString(TBase base) {
     base.write(protocol);
-    
+
     Uint8List bytes = transport.consumeWriteBuffer();
-    
+
     return base64.encode(bytes);
   }
 }
diff --git a/lib/dart/lib/src/t_application_error.dart b/lib/dart/lib/src/t_application_error.dart
index 6f8abd4..38449a9 100644
--- a/lib/dart/lib/src/t_application_error.dart
+++ b/lib/dart/lib/src/t_application_error.dart
@@ -32,12 +32,11 @@ class TApplicationErrorType {
 }
 
 class TApplicationError extends TError {
-  static final TStruct _struct = new TStruct("TApplicationError");
+  static final TStruct _struct = TStruct("TApplicationError");
   static const int MESSAGE = 1;
-  static final TField _messageField =
-      new TField("message", TType.STRING, MESSAGE);
+  static final TField _messageField = TField("message", TType.STRING, MESSAGE);
   static const int TYPE = 2;
-  static final TField _typeField = new TField("type", TType.I32, TYPE);
+  static final TField _typeField = TField("type", TType.I32, TYPE);
 
   TApplicationError(
       [int type = TApplicationErrorType.UNKNOWN, String message = ""])
@@ -46,7 +45,7 @@ class TApplicationError extends TError {
   static TApplicationError read(TProtocol iprot) {
     TField field;
 
-    String message = null;
+    String message;
     int type = TApplicationErrorType.UNKNOWN;
 
     iprot.readStructBegin();
@@ -82,13 +81,13 @@ class TApplicationError extends TError {
     }
     iprot.readStructEnd();
 
-    return new TApplicationError(type, message);
+    return TApplicationError(type, message);
   }
 
   write(TProtocol oprot) {
     oprot.writeStructBegin(_struct);
 
-    if (message != null && !message.isEmpty) {
+    if (message != null && message.isNotEmpty) {
       oprot.writeFieldBegin(_messageField);
       oprot.writeString(message);
       oprot.writeFieldEnd();
diff --git a/lib/dart/lib/src/t_error.dart b/lib/dart/lib/src/t_error.dart
index 93ab732..df15791 100644
--- a/lib/dart/lib/src/t_error.dart
+++ b/lib/dart/lib/src/t_error.dart
@@ -23,5 +23,6 @@ class TError extends Error {
 
   TError(this.type, this.message);
 
+  @override
   String toString() => "<TError type: $type message: '$message'>";
 }
diff --git a/lib/dart/lib/src/transport/t_buffered_transport.dart b/lib/dart/lib/src/transport/t_buffered_transport.dart
index b73a30c..f17b2ee 100644
--- a/lib/dart/lib/src/transport/t_buffered_transport.dart
+++ b/lib/dart/lib/src/transport/t_buffered_transport.dart
@@ -23,7 +23,7 @@ class TBufferedTransport extends TTransport {
   Iterator<int> _readIterator;
 
   Uint8List consumeWriteBuffer() {
-    Uint8List buffer = new Uint8List.fromList(_writeBuffer);
+    Uint8List buffer = Uint8List.fromList(_writeBuffer);
     _writeBuffer.clear();
     return buffer;
   }
@@ -32,7 +32,7 @@ class TBufferedTransport extends TTransport {
     _readIterator = readBuffer != null ? readBuffer.iterator : null;
   }
 
-  void _reset({bool isOpen: false}) {
+  void _reset({bool isOpen = false}) {
     _isOpen = isOpen;
     _writeBuffer.clear();
     _readIterator = null;
@@ -41,23 +41,27 @@ class TBufferedTransport extends TTransport {
   bool get hasReadData => _readIterator != null;
 
   bool _isOpen;
+  @override
   bool get isOpen => _isOpen;
 
+  @override
   Future open() async {
     _reset(isOpen: true);
   }
 
+  @override
   Future close() async {
     _reset(isOpen: false);
   }
 
+  @override
   int read(Uint8List buffer, int offset, int length) {
     if (buffer == null) {
-      throw new ArgumentError.notNull("buffer");
+      throw ArgumentError.notNull("buffer");
     }
 
     if (offset + length > buffer.length) {
-      throw new ArgumentError("The range exceeds the buffer length");
+      throw ArgumentError("The range exceeds the buffer length");
     }
 
     if (_readIterator == null || length <= 0) {
@@ -78,21 +82,23 @@ class TBufferedTransport extends TTransport {
     return i;
   }
 
+  @override
   void write(Uint8List buffer, int offset, int length) {
     if (buffer == null) {
-      throw new ArgumentError.notNull("buffer");
+      throw ArgumentError.notNull("buffer");
     }
 
     if (offset + length > buffer.length) {
-      throw new ArgumentError("The range exceeds the buffer length");
+      throw ArgumentError("The range exceeds the buffer length");
     }
 
     _writeBuffer.addAll(buffer.sublist(offset, offset + length));
   }
 
+  @override
   Future flush() {
     _readIterator = consumeWriteBuffer().iterator;
 
-    return new Future.value();
+    return Future.value();
   }
 }
diff --git a/lib/dart/lib/src/transport/t_framed_transport.dart b/lib/dart/lib/src/transport/t_framed_transport.dart
index 2ef03f7..3fc55fa 100644
--- a/lib/dart/lib/src/transport/t_framed_transport.dart
+++ b/lib/dart/lib/src/transport/t_framed_transport.dart
@@ -25,33 +25,37 @@ class TFramedTransport extends TBufferedTransport {
 
   final TTransport _transport;
 
-  final Uint8List _headerBytes = new Uint8List(headerByteCount);
+  final Uint8List _headerBytes = Uint8List(headerByteCount);
   int _receivedHeaderBytes = 0;
 
   int _bodySize = 0;
-  Uint8List _body = null;
+  Uint8List _body;
   int _receivedBodyBytes = 0;
 
-  Completer<Uint8List> _frameCompleter = null;
+  Completer<Uint8List> _frameCompleter;
 
   TFramedTransport(TTransport transport) : _transport = transport {
     if (transport == null) {
-      throw new ArgumentError.notNull("transport");
+      throw ArgumentError.notNull("transport");
     }
   }
 
+  @override
   bool get isOpen => _transport.isOpen;
 
+  @override
   Future open() {
     _reset(isOpen: true);
     return _transport.open();
   }
 
+  @override
   Future close() {
     _reset(isOpen: false);
     return _transport.close();
   }
 
+  @override
   int read(Uint8List buffer, int offset, int length) {
     if (hasReadData) {
       int got = super.read(buffer, offset, length);
@@ -78,10 +82,11 @@ class TFramedTransport extends TBufferedTransport {
   bool _readFrameHeader() {
     var remainingHeaderBytes = headerByteCount - _receivedHeaderBytes;
 
-    int got = _transport.read(_headerBytes, _receivedHeaderBytes, remainingHeaderBytes);
+    int got = _transport.read(
+        _headerBytes, _receivedHeaderBytes, remainingHeaderBytes);
     if (got < 0) {
-      throw new TTransportError(
-          TTransportErrorType.UNKNOWN, "Socket closed during frame header read");
+      throw TTransportError(TTransportErrorType.UNKNOWN,
+          "Socket closed during frame header read");
     }
 
     _receivedHeaderBytes += got;
@@ -92,12 +97,12 @@ class TFramedTransport extends TBufferedTransport {
       _receivedHeaderBytes = 0;
 
       if (size < 0) {
-        throw new TTransportError(
+        throw TTransportError(
             TTransportErrorType.UNKNOWN, "Read a negative frame size: $size");
       }
 
       _bodySize = size;
-      _body = new Uint8List(_bodySize);
+      _body = Uint8List(_bodySize);
       _receivedBodyBytes = 0;
 
       return true;
@@ -112,7 +117,7 @@ class TFramedTransport extends TBufferedTransport {
 
     int got = _transport.read(_body, _receivedBodyBytes, remainingBodyBytes);
     if (got < 0) {
-      throw new TTransportError(
+      throw TTransportError(
           TTransportErrorType.UNKNOWN, "Socket closed during frame body read");
     }
 
@@ -129,12 +134,13 @@ class TFramedTransport extends TBufferedTransport {
 
       var completer = _frameCompleter;
       _frameCompleter = null;
-      completer.complete(new Uint8List(0));
+      completer.complete(Uint8List(0));
     } else {
       _registerForReadableBytes();
     }
   }
 
+  @override
   Future flush() {
     if (_frameCompleter == null) {
       Uint8List buffer = consumeWriteBuffer();
@@ -144,7 +150,7 @@ class TFramedTransport extends TBufferedTransport {
       _transport.write(_headerBytes, 0, headerByteCount);
       _transport.write(buffer, 0, length);
 
-      _frameCompleter  = new Completer<Uint8List>();
+      _frameCompleter = Completer<Uint8List>();
       _registerForReadableBytes();
     }
 
diff --git a/lib/dart/lib/src/transport/t_http_transport.dart b/lib/dart/lib/src/transport/t_http_transport.dart
index 630213f..71fdb3c 100644
--- a/lib/dart/lib/src/transport/t_http_transport.dart
+++ b/lib/dart/lib/src/transport/t_http_transport.dart
@@ -34,31 +34,33 @@ class THttpClientTransport extends TBufferedTransport {
 
   THttpClientTransport(this.httpClient, this.config) {
     if (httpClient == null) {
-      throw new ArgumentError.notNull("httpClient");
+      throw ArgumentError.notNull("httpClient");
     }
   }
 
+  @override
   Future close() async {
     _reset(isOpen: false);
     httpClient.close();
   }
 
+  @override
   Future flush() {
     var requestBody = base64.encode(consumeWriteBuffer());
 
     // Use a sync completer to ensure that the buffer can be read immediately
     // after the read buffer is set, and avoid a race condition where another
     // response could overwrite the read buffer.
-    var completer = new Completer.sync();
+    var completer = Completer.sync();
 
     httpClient
         .post(config.url, headers: config.headers, body: requestBody)
         .then((response) {
       Uint8List data;
       try {
-        data = new Uint8List.fromList(base64.decode(response.body));
+        data = Uint8List.fromList(base64.decode(response.body));
       } on FormatException catch (_) {
-        throw new TProtocolError(TProtocolErrorType.INVALID_DATA,
+        throw TProtocolError(TProtocolErrorType.INVALID_DATA,
             "Expected a Base 64 encoded string.");
       }
 
@@ -78,7 +80,7 @@ class THttpConfig {
 
   THttpConfig(this.url, Map<String, String> headers) {
     if (url == null || !url.hasAuthority) {
-      throw new ArgumentError("Invalid url");
+      throw ArgumentError("Invalid url");
     }
 
     _initHeaders(headers);
@@ -94,6 +96,6 @@ class THttpConfig {
     h['Content-Type'] = 'application/x-thrift';
     h['Accept'] = 'application/x-thrift';
 
-    _headers = new Map.unmodifiable(h);
+    _headers = Map.unmodifiable(h);
   }
 }
diff --git a/lib/dart/lib/src/transport/t_message_reader.dart b/lib/dart/lib/src/transport/t_message_reader.dart
index 8ca0708..620a27a 100644
--- a/lib/dart/lib/src/transport/t_message_reader.dart
+++ b/lib/dart/lib/src/transport/t_message_reader.dart
@@ -27,8 +27,8 @@ class TMessageReader {
 
   /// Construct a [MessageReader].  The optional [byteOffset] specifies the
   /// number of bytes to skip before reading the [TMessage].
-  TMessageReader(this.protocolFactory, {int byteOffset: 0})
-      : _transport = new _TMessageReaderTransport(),
+  TMessageReader(this.protocolFactory, {int byteOffset = 0})
+      : _transport = _TMessageReaderTransport(),
         this.byteOffset = byteOffset;
 
   TMessage readMessage(Uint8List bytes) {
@@ -54,7 +54,7 @@ class _TMessageReaderTransport extends TTransport {
     }
 
     if (offset > bytes.length) {
-      throw new ArgumentError("The offset exceeds the bytes length");
+      throw ArgumentError("The offset exceeds the bytes length");
     }
 
     _readIterator = bytes.iterator;
@@ -64,19 +64,23 @@ class _TMessageReaderTransport extends TTransport {
     }
   }
 
+  @override
   get isOpen => true;
 
-  Future open() => throw new UnsupportedError("Unsupported in MessageReader");
+  @override
+  Future open() => throw UnsupportedError("Unsupported in MessageReader");
 
-  Future close() => throw new UnsupportedError("Unsupported in MessageReader");
+  @override
+  Future close() => throw UnsupportedError("Unsupported in MessageReader");
 
+  @override
   int read(Uint8List buffer, int offset, int length) {
     if (buffer == null) {
-      throw new ArgumentError.notNull("buffer");
+      throw ArgumentError.notNull("buffer");
     }
 
     if (offset + length > buffer.length) {
-      throw new ArgumentError("The range exceeds the buffer length");
+      throw ArgumentError("The range exceeds the buffer length");
     }
 
     if (_readIterator == null || length <= 0) {
@@ -92,8 +96,10 @@ class _TMessageReaderTransport extends TTransport {
     return i;
   }
 
+  @override
   void write(Uint8List buffer, int offset, int length) =>
-      throw new UnsupportedError("Unsupported in MessageReader");
+      throw UnsupportedError("Unsupported in MessageReader");
 
-  Future flush() => throw new UnsupportedError("Unsupported in MessageReader");
+  @override
+  Future flush() => throw UnsupportedError("Unsupported in MessageReader");
 }
diff --git a/lib/dart/lib/src/transport/t_socket_transport.dart b/lib/dart/lib/src/transport/t_socket_transport.dart
index c41374a..d9929c8 100644
--- a/lib/dart/lib/src/transport/t_socket_transport.dart
+++ b/lib/dart/lib/src/transport/t_socket_transport.dart
@@ -28,27 +28,30 @@ part of thrift;
 ///
 /// Adapted from the JS WebSocket transport.
 abstract class TSocketTransport extends TBufferedTransport {
-  final Logger logger = new Logger('thrift.TSocketTransport');
+  final Logger logger = Logger('thrift.TSocketTransport');
 
   final TSocket socket;
 
   /// A transport using the provided [socket].
   TSocketTransport(this.socket) {
     if (socket == null) {
-      throw new ArgumentError.notNull('socket');
+      throw ArgumentError.notNull('socket');
     }
 
     socket.onError.listen((e) => logger.warning(e));
     socket.onMessage.listen(handleIncomingMessage);
   }
 
+  @override
   bool get isOpen => socket.isOpen;
 
+  @override
   Future open() {
     _reset(isOpen: true);
     return socket.open();
   }
 
+  @override
   Future close() {
     _reset(isOpen: false);
     return socket.close();
@@ -70,13 +73,14 @@ class TClientSocketTransport extends TSocketTransport {
 
   TClientSocketTransport(TSocket socket) : super(socket);
 
+  @override
   Future flush() {
     Uint8List bytes = consumeWriteBuffer();
 
     // Use a sync completer to ensure that the buffer can be read immediately
     // after the read buffer is set, and avoid a race condition where another
     // response could overwrite the read buffer.
-    var completer = new Completer<Uint8List>.sync();
+    var completer = Completer<Uint8List>.sync();
     _completers.add(completer);
 
     if (bytes.lengthInBytes > 0) {
@@ -86,6 +90,7 @@ class TClientSocketTransport extends TSocketTransport {
     return completer.future;
   }
 
+  @override
   void handleIncomingMessage(Uint8List messageBytes) {
     super.handleIncomingMessage(messageBytes);
 
@@ -103,7 +108,7 @@ class TClientSocketTransport extends TSocketTransport {
 /// incoming message arrives to correlate a response to a request, using the
 /// seqid.
 class TAsyncClientSocketTransport extends TSocketTransport {
-  static const defaultTimeout = const Duration(seconds: 30);
+  static const defaultTimeout = Duration(seconds: 30);
 
   final Map<int, Completer<Uint8List>> _completers = {};
 
@@ -112,11 +117,12 @@ class TAsyncClientSocketTransport extends TSocketTransport {
   final Duration responseTimeout;
 
   TAsyncClientSocketTransport(TSocket socket, TMessageReader messageReader,
-      {Duration responseTimeout: defaultTimeout})
+      {Duration responseTimeout = defaultTimeout})
       : this.messageReader = messageReader,
         this.responseTimeout = responseTimeout,
         super(socket);
 
+  @override
   Future flush() {
     Uint8List bytes = consumeWriteBuffer();
     TMessage message = messageReader.readMessage(bytes);
@@ -125,15 +131,15 @@ class TAsyncClientSocketTransport extends TSocketTransport {
     // Use a sync completer to ensure that the buffer can be read immediately
     // after the read buffer is set, and avoid a race condition where another
     // response could overwrite the read buffer.
-    var completer = new Completer<Uint8List>.sync();
+    var completer = Completer<Uint8List>.sync();
     _completers[seqid] = completer;
 
     if (responseTimeout != null) {
-      new Future.delayed(responseTimeout, () {
+      Future.delayed(responseTimeout, () {
         var completer = _completers.remove(seqid);
         if (completer != null) {
           completer.completeError(
-              new TimeoutException("Response timed out.", responseTimeout));
+              TimeoutException("Response timed out.", responseTimeout));
         }
       });
     }
@@ -143,6 +149,7 @@ class TAsyncClientSocketTransport extends TSocketTransport {
     return completer.future;
   }
 
+  @override
   void handleIncomingMessage(Uint8List messageBytes) {
     super.handleIncomingMessage(messageBytes);
 
@@ -161,14 +168,16 @@ class TServerSocketTransport extends TSocketTransport {
   Stream get onIncomingMessage => _onIncomingMessageController.stream;
 
   TServerSocketTransport(TSocket socket)
-      : _onIncomingMessageController = new StreamController.broadcast(),
+      : _onIncomingMessageController = StreamController.broadcast(),
         super(socket);
 
+  @override
   Future flush() async {
     Uint8List message = consumeWriteBuffer();
     socket.send(message);
   }
 
+  @override
   void handleIncomingMessage(Uint8List messageBytes) {
     super.handleIncomingMessage(messageBytes);
 
diff --git a/lib/dart/lib/src/transport/t_transport.dart b/lib/dart/lib/src/transport/t_transport.dart
index 563d5eb..ec9a4e8 100644
--- a/lib/dart/lib/src/transport/t_transport.dart
+++ b/lib/dart/lib/src/transport/t_transport.dart
@@ -44,7 +44,7 @@ abstract class TTransport {
     while (got < length) {
       ret = read(buffer, offset + got, length - got);
       if (ret <= 0) {
-        throw new TTransportError(
+        throw TTransportError(
             TTransportErrorType.UNKNOWN,
             "Cannot read. Remote side has closed. Tried to read $length "
             "bytes, but only got $got bytes.");
diff --git a/lib/dart/lib/src/transport/t_transport_factory.dart b/lib/dart/lib/src/transport/t_transport_factory.dart
index 7a10461..bbd95bf 100644
--- a/lib/dart/lib/src/transport/t_transport_factory.dart
+++ b/lib/dart/lib/src/transport/t_transport_factory.dart
@@ -23,5 +23,5 @@ part of thrift;
 /// Adapted from the Java version.
 class TTransportFactory {
   Future<TTransport> getTransport(TTransport transport) =>
-      new Future.value(transport);
+      Future.value(transport);
 }
diff --git a/lib/dart/lib/thrift.dart b/lib/dart/lib/thrift.dart
index c429d77..dd89ebd 100644
--- a/lib/dart/lib/thrift.dart
+++ b/lib/dart/lib/thrift.dart
@@ -19,12 +19,9 @@ library thrift;
 
 import 'dart:async';
 import 'dart:collection';
-import 'dart:convert' show Utf8Codec;
-import 'dart:typed_data' show ByteData;
-import 'dart:typed_data' show Uint8List;
+import 'dart:convert' show Utf8Codec, base64;
+import 'dart:typed_data' show ByteData, Uint8List, Endian;
 
-import 'package:dart2_constant/convert.dart' show base64;
-import 'package:dart2_constant/typed_data.dart' show Endianness;
 import 'package:fixnum/fixnum.dart';
 import 'package:http/http.dart' show Client;
 import 'package:logging/logging.dart';
diff --git a/lib/dart/pubspec.yaml b/lib/dart/pubspec.yaml
index e16cac3..28407e2 100644
--- a/lib/dart/pubspec.yaml
+++ b/lib/dart/pubspec.yaml
@@ -24,15 +24,20 @@ homepage: http://thrift.apache.org
 documentation: http://thrift.apache.org
 
 environment:
-  sdk: ">=1.24.3 <3.0.0"
+  sdk: ">=2.0.0 <3.0.0"
 
 dependencies:
-  dart2_constant: ^1.0.0
   fixnum: ^0.10.2
-  http: ^0.11.3
+  http: ">=0.11.3 <0.13.0"
   logging: ^0.11.0
 
 dev_dependencies:
-  dart_dev: ^2.0.0
-  mockito: ">=2.2.2 <4.0.0"
-  test: ">=0.12.30 <2.0.0"
+  build_runner: ^1.7.1
+  build_test: ^0.10.9
+  build_vm_compilers: ^1.0.3
+  build_web_compilers: ^2.7.1
+  dart_dev: ^3.0.0
+  dart_style: ^1.3.1
+  mockito: ^4.1.1
+  test: ^1.9.1
+  workiva_analysis_options: ^1.0.0
\ No newline at end of file
diff --git a/lib/dart/test/protocol/t_protocol_test.dart b/lib/dart/test/protocol/t_protocol_test.dart
index dc63dbb..15d973c 100644
--- a/lib/dart/test/protocol/t_protocol_test.dart
+++ b/lib/dart/test/protocol/t_protocol_test.dart
@@ -18,42 +18,42 @@
 library thrift.test.transport.t_json_protocol_test;
 
 import 'dart:async';
+import 'dart:convert' show utf8;
 import 'dart:typed_data' show Uint8List;
 
-import 'package:dart2_constant/convert.dart' show utf8;
 import 'package:test/test.dart';
 import 'package:thrift/thrift.dart';
 
 void main() {
-  final message = new TMessage('my message', TMessageType.ONEWAY, 123);
+  final message = TMessage('my message', TMessageType.ONEWAY, 123);
 
   TProtocol protocol;
 
   Primitive getPrimitive(int tType) {
     switch (tType) {
       case TType.BOOL:
-        return new Primitive(protocol.readBool, protocol.writeBool, false);
+        return Primitive(protocol.readBool, protocol.writeBool, false);
 
       case TType.BYTE:
-        return new Primitive(protocol.readByte, protocol.writeByte, 0);
+        return Primitive(protocol.readByte, protocol.writeByte, 0);
 
       case TType.I16:
-        return new Primitive(protocol.readI16, protocol.writeI16, 0);
+        return Primitive(protocol.readI16, protocol.writeI16, 0);
 
       case TType.I32:
-        return new Primitive(protocol.readI32, protocol.writeI32, 0);
+        return Primitive(protocol.readI32, protocol.writeI32, 0);
 
       case TType.I64:
-        return new Primitive(protocol.readI64, protocol.writeI64, 0);
+        return Primitive(protocol.readI64, protocol.writeI64, 0);
 
       case TType.DOUBLE:
-        return new Primitive(protocol.readDouble, protocol.writeDouble, 0);
+        return Primitive(protocol.readDouble, protocol.writeDouble, 0);
 
       case TType.STRING:
-        return new Primitive(protocol.readString, protocol.writeString, '');
+        return Primitive(protocol.readString, protocol.writeString, '');
 
       default:
-        throw new UnsupportedError("Unsupported TType $tType");
+        throw UnsupportedError("Unsupported TType $tType");
     }
   }
 
@@ -95,7 +95,7 @@ void main() {
     });
 
     test('Test struct', () async {
-      var input = new TStruct();
+      var input = TStruct();
 
       protocol.writeStructBegin(input);
       protocol.writeStructEnd();
@@ -111,7 +111,7 @@ void main() {
     });
 
     test('Test field', () async {
-      var input = new TField('my field', TType.MAP, 123);
+      var input = TField('my field', TType.MAP, 123);
 
       protocol.writeFieldBegin(input);
       protocol.writeFieldEnd();
@@ -128,7 +128,7 @@ void main() {
     });
 
     test('Test map', () async {
-      var input = new TMap(TType.STRING, TType.STRUCT, 123);
+      var input = TMap(TType.STRING, TType.STRUCT, 123);
 
       protocol.writeMapBegin(input);
       protocol.writeMapEnd();
@@ -145,7 +145,7 @@ void main() {
     });
 
     test('Test list', () async {
-      var input = new TList(TType.STRING, 123);
+      var input = TList(TType.STRING, 123);
 
       protocol.writeListBegin(input);
       protocol.writeListEnd();
@@ -161,7 +161,7 @@ void main() {
     });
 
     test('Test set', () async {
-      var input = new TSet(TType.STRING, 123);
+      var input = TSet(TType.STRING, 123);
 
       protocol.writeSetBegin(input);
       protocol.writeSetEnd();
@@ -235,7 +235,7 @@ void main() {
     });
 
     test('Test binary', () async {
-      var input = new Uint8List.fromList(new List.filled(100, 123));
+      var input = Uint8List.fromList(List.filled(100, 123));
 
       protocol.writeBinary(input);
       protocol.writeMessageEnd();
@@ -251,18 +251,18 @@ void main() {
 
     test('Test complex struct', () async {
       // {1: {10: 20}, 2: {30: 40}}
-      protocol.writeStructBegin(new TStruct());
-      protocol.writeFieldBegin(new TField('success', TType.MAP, 0));
-      protocol.writeMapBegin(new TMap(TType.I32, TType.MAP, 2));
+      protocol.writeStructBegin(TStruct());
+      protocol.writeFieldBegin(TField('success', TType.MAP, 0));
+      protocol.writeMapBegin(TMap(TType.I32, TType.MAP, 2));
 
       protocol.writeI32(1); // key
-      protocol.writeMapBegin(new TMap(TType.I32, TType.I32, 1));
+      protocol.writeMapBegin(TMap(TType.I32, TType.I32, 1));
       protocol.writeI32(10); // key
       protocol.writeI32(20); // value
       protocol.writeMapEnd();
 
       protocol.writeI32(2); // key
-      protocol.writeMapBegin(new TMap(TType.I32, TType.I32, 1));
+      protocol.writeMapBegin(TMap(TType.I32, TType.I32, 1));
       protocol.writeI32(30); // key
       protocol.writeI32(40); // value
       protocol.writeMapEnd();
@@ -300,19 +300,19 @@ void main() {
 
     test('Test nested maps and lists', () async {
       // {1: [{10: 20}], 2: [{30: 40}]}
-      protocol.writeMapBegin(new TMap(TType.I32, TType.LIST, 2));
+      protocol.writeMapBegin(TMap(TType.I32, TType.LIST, 2));
 
       protocol.writeI32(1); // key
-      protocol.writeListBegin(new TList(TType.MAP, 1));
-      protocol.writeMapBegin(new TMap(TType.I32, TType.I32, 1));
+      protocol.writeListBegin(TList(TType.MAP, 1));
+      protocol.writeMapBegin(TMap(TType.I32, TType.I32, 1));
       protocol.writeI32(10); // key
       protocol.writeI32(20); // value
       protocol.writeMapEnd();
       protocol.writeListEnd();
 
       protocol.writeI32(2); // key
-      protocol.writeListBegin(new TList(TType.MAP, 1));
-      protocol.writeMapBegin(new TMap(TType.I32, TType.I32, 1));
+      protocol.writeListBegin(TList(TType.MAP, 1));
+      protocol.writeMapBegin(TMap(TType.I32, TType.I32, 1));
       protocol.writeI32(30); // key
       protocol.writeI32(40); // value
       protocol.writeMapEnd();
@@ -349,7 +349,7 @@ void main() {
 
   group('JSON', () {
     setUp(() {
-      protocol = new TJsonProtocol(new TBufferedTransport());
+      protocol = TJsonProtocol(TBufferedTransport());
       protocol.writeMessageBegin(message);
     });
 
@@ -363,10 +363,10 @@ void main() {
            UTF-16: 0xD834 0xDD1E
        */
       var buffer = utf8.encode(r'"\u0001\u0e01 \ud834\udd1e"');
-      var transport = new TBufferedTransport();
+      var transport = TBufferedTransport();
       transport.writeAll(buffer);
 
-      var protocol = new TJsonProtocol(transport);
+      var protocol = TJsonProtocol(transport);
 
       await protocol.transport.flush();
 
@@ -380,7 +380,7 @@ void main() {
 
   group('binary', () {
     setUp(() {
-      protocol = new TBinaryProtocol(new TBufferedTransport());
+      protocol = TBinaryProtocol(TBufferedTransport());
       protocol.writeMessageBegin(message);
     });
 
@@ -389,7 +389,7 @@ void main() {
 
   group('compact', () {
     setUp(() {
-      protocol = new TCompactProtocol(new TBufferedTransport());
+      protocol = TCompactProtocol(TBufferedTransport());
       protocol.writeMessageBegin(message);
     });
 
diff --git a/lib/dart/test/serializer/serializer_test.dart b/lib/dart/test/serializer/serializer_test.dart
index 2f76503..89883cb 100644
--- a/lib/dart/test/serializer/serializer_test.dart
+++ b/lib/dart/test/serializer/serializer_test.dart
@@ -30,22 +30,22 @@ void main() {
     TestTObject testTObject;
 
     setUp(() {
-      serializer = new TSerializer();
-      deserializer = new TDeserializer();
-      
-      testTObject = new TestTObject();
+      serializer = TSerializer();
+      deserializer = TDeserializer();
+
+      testTObject = TestTObject();
       testTObject.b = true;
       testTObject.s = "TEST";
       testTObject.d = 15.25;
       testTObject.i = 10;
-      
-      var testList = new List<String>();
+
+      var testList = List<String>();
       testList.add("TEST 1");
       testList.add("TEST 2");
-      
+
       testTObject.l = testList;
     });
-    
+
     assertNewObjectEqualsTObject(TestTObject newObject) {
       expect(newObject.l, equals(testTObject.l));
       expect(newObject.b, equals(testTObject.b));
@@ -53,63 +53,63 @@ void main() {
       expect(newObject.d, equals(testTObject.d));
       expect(newObject.s, equals(testTObject.s));
     }
-    
+
     runWriteStringTest() {
       var s = serializer.writeString(testTObject);
 
-      var newObject = new TestTObject();
+      var newObject = TestTObject();
       deserializer.readString(newObject, s);
 
       assertNewObjectEqualsTObject(newObject);
-    };
+    }
 
     runWriteTest() {
       var s = serializer.write(testTObject);
 
-      var newObject = new TestTObject();
+      var newObject = TestTObject();
       deserializer.read(newObject, s);
 
       assertNewObjectEqualsTObject(newObject);
-    };
+    }
 
     test('JSON Protocol String', () {
-      serializer.protocol = new TJsonProtocol(serializer.transport);
-      deserializer.protocol = new TJsonProtocol(deserializer.transport);
-      
+      serializer.protocol = TJsonProtocol(serializer.transport);
+      deserializer.protocol = TJsonProtocol(deserializer.transport);
+
       runWriteStringTest();
     });
 
     test('JSON Protocol', () {
-      serializer.protocol = new TJsonProtocol(serializer.transport);
-      deserializer.protocol = new TJsonProtocol(deserializer.transport);
+      serializer.protocol = TJsonProtocol(serializer.transport);
+      deserializer.protocol = TJsonProtocol(deserializer.transport);
 
       runWriteTest();
     });
 
     test('Binary Protocol String', () {
-      serializer.protocol = new TBinaryProtocol(serializer.transport);
-      deserializer.protocol = new TBinaryProtocol(deserializer.transport);
+      serializer.protocol = TBinaryProtocol(serializer.transport);
+      deserializer.protocol = TBinaryProtocol(deserializer.transport);
 
       runWriteStringTest();
     });
 
     test('Binary Protocol', () {
-      serializer.protocol = new TBinaryProtocol(serializer.transport);
-      deserializer.protocol = new TBinaryProtocol(deserializer.transport);
+      serializer.protocol = TBinaryProtocol(serializer.transport);
+      deserializer.protocol = TBinaryProtocol(deserializer.transport);
 
       runWriteTest();
     });
 
     test('Compact Protocol String', () {
-      serializer.protocol = new TCompactProtocol(serializer.transport);
-      deserializer.protocol = new TCompactProtocol(deserializer.transport);
+      serializer.protocol = TCompactProtocol(serializer.transport);
+      deserializer.protocol = TCompactProtocol(deserializer.transport);
 
       runWriteStringTest();
     });
 
     test('Compact Protocol', () {
-      serializer.protocol = new TCompactProtocol(serializer.transport);
-      deserializer.protocol = new TCompactProtocol(deserializer.transport);
+      serializer.protocol = TCompactProtocol(serializer.transport);
+      deserializer.protocol = TCompactProtocol(deserializer.transport);
 
       runWriteTest();
     });
diff --git a/lib/dart/test/serializer/serializer_test_data.dart b/lib/dart/test/serializer/serializer_test_data.dart
index 3586f08..fc488f4 100644
--- a/lib/dart/test/serializer/serializer_test_data.dart
+++ b/lib/dart/test/serializer/serializer_test_data.dart
@@ -23,12 +23,12 @@ import 'package:thrift/thrift.dart';
 
 /// TestTObject is a simple test struct
 class TestTObject implements TBase {
-  static final TStruct _STRUCT_DESC = new TStruct("TestTObject");
-  static final TField _I_FIELD_DESC = new TField("i", TType.I32, 1);
-  static final TField _D_FIELD_DESC = new TField("d", TType.DOUBLE, 2);
-  static final TField _S_FIELD_DESC = new TField("s", TType.STRING, 3);
-  static final TField _L_FIELD_DESC = new TField("l", TType.LIST, 4);
-  static final TField _B_FIELD_DESC = new TField("b", TType.BOOL, 5);
+  static final TStruct _STRUCT_DESC = TStruct("TestTObject");
+  static final TField _I_FIELD_DESC = TField("i", TType.I32, 1);
+  static final TField _D_FIELD_DESC = TField("d", TType.DOUBLE, 2);
+  static final TField _S_FIELD_DESC = TField("s", TType.STRING, 3);
+  static final TField _L_FIELD_DESC = TField("l", TType.LIST, 4);
+  static final TField _B_FIELD_DESC = TField("b", TType.BOOL, 5);
 
   int _i;
   static const int I = 1;
@@ -45,8 +45,7 @@ class TestTObject implements TBase {
   bool __isset_d = false;
   bool __isset_b = false;
 
-  TestTObject() {
-  }
+  TestTObject();
 
   // i
   int get i => this._i;
@@ -116,6 +115,7 @@ class TestTObject implements TBase {
     this.__isset_b = false;
   }
 
+  @override
   getFieldValue(int fieldID) {
     switch (fieldID) {
       case I:
@@ -129,10 +129,11 @@ class TestTObject implements TBase {
       case B:
         return this.b;
       default:
-        throw new ArgumentError("Field $fieldID doesn't exist!");
+        throw ArgumentError("Field $fieldID doesn't exist!");
     }
   }
 
+  @override
   setFieldValue(int fieldID, Object value) {
     switch (fieldID) {
       case I:
@@ -176,11 +177,12 @@ class TestTObject implements TBase {
         break;
 
       default:
-        throw new ArgumentError("Field $fieldID doesn't exist!");
+        throw ArgumentError("Field $fieldID doesn't exist!");
     }
   }
 
   // Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise
+  @override
   bool isSet(int fieldID) {
     switch (fieldID) {
       case I:
@@ -194,10 +196,11 @@ class TestTObject implements TBase {
       case B:
         return isSetB();
       default:
-        throw new ArgumentError("Field $fieldID doesn't exist!");
+        throw ArgumentError("Field $fieldID doesn't exist!");
     }
   }
 
+  @override
   read(TProtocol iprot) {
     TField field;
     iprot.readStructBegin();
@@ -234,7 +237,7 @@ class TestTObject implements TBase {
           if (field.type == TType.LIST) {
             {
               TList _list74 = iprot.readListBegin();
-              this.l = new List<String>();
+              this.l = List<String>();
               for (int _i75 = 0; _i75 < _list74.length; ++_i75) {
                 String _elem76;
                 _elem76 = iprot.readString();
@@ -266,6 +269,7 @@ class TestTObject implements TBase {
     validate();
   }
 
+  @override
   write(TProtocol oprot) {
     validate();
 
@@ -284,7 +288,7 @@ class TestTObject implements TBase {
     if (this.l != null) {
       oprot.writeFieldBegin(_L_FIELD_DESC);
       {
-        oprot.writeListBegin(new TList(TType.STRING, this.l.length));
+        oprot.writeListBegin(TList(TType.STRING, this.l.length));
         for (var elem77 in this.l) {
           oprot.writeString(elem77);
         }
@@ -299,8 +303,9 @@ class TestTObject implements TBase {
     oprot.writeStructEnd();
   }
 
+  @override
   String toString() {
-    StringBuffer ret = new StringBuffer("TestTObject(");
+    StringBuffer ret = StringBuffer("TestTObject(");
 
     ret.write("i:");
     ret.write(this.i);
@@ -338,5 +343,4 @@ class TestTObject implements TBase {
     // check for required fields
     // check that fields of type enum have valid values
   }
-
 }
diff --git a/lib/dart/test/t_application_error_test.dart b/lib/dart/test/t_application_error_test.dart
index 511d8d6..848ce56 100644
--- a/lib/dart/test/t_application_error_test.dart
+++ b/lib/dart/test/t_application_error_test.dart
@@ -24,15 +24,14 @@ void main() {
   TProtocol protocol;
 
   setUp(() {
-    protocol = new TBinaryProtocol(new TBufferedTransport());
+    protocol = TBinaryProtocol(TBufferedTransport());
   });
 
   test('Write and read an application error', () {
     var expectedType = TApplicationErrorType.INTERNAL_ERROR;
     var expectedMessage = 'test error message';
 
-    TApplicationError error =
-        new TApplicationError(expectedType, expectedMessage);
+    TApplicationError error = TApplicationError(expectedType, expectedMessage);
     error.write(protocol);
 
     protocol.transport.flush();
diff --git a/lib/dart/test/transport/t_framed_transport_test.dart b/lib/dart/test/transport/t_framed_transport_test.dart
index 7ab4905..d9a15a5 100644
--- a/lib/dart/test/transport/t_framed_transport_test.dart
+++ b/lib/dart/test/transport/t_framed_transport_test.dart
@@ -18,15 +18,15 @@
 library thrift.test.transport.t_framed_transport_test;
 
 import 'dart:async';
+import 'dart:convert' show utf8;
 import 'dart:typed_data' show Uint8List;
 
-import 'package:dart2_constant/convert.dart' show utf8;
 import 'package:test/test.dart';
 import 'package:thrift/thrift.dart';
 
 void main() {
   group('TFramedTransport partial reads', () {
-    final flushAwaitDuration = new Duration(seconds: 10);
+    final flushAwaitDuration = Duration(seconds: 10);
 
     FakeReadOnlySocket socket;
     TSocketTransport socketTransport;
@@ -34,22 +34,24 @@ void main() {
     var messageAvailable;
 
     setUp(() {
-      socket = new FakeReadOnlySocket();
-      socketTransport = new TClientSocketTransport(socket);
-      transport = new TFramedTransport(socketTransport);
+      socket = FakeReadOnlySocket();
+      socketTransport = TClientSocketTransport(socket);
+      transport = TFramedTransport(socketTransport);
       messageAvailable = false;
     });
 
     expectNoReadableBytes() {
-      var readBuffer = new Uint8List(128);
+      var readBuffer = Uint8List(128);
       var readBytes = transport.read(readBuffer, 0, readBuffer.lengthInBytes);
       expect(readBytes, 0);
       expect(messageAvailable, false);
     }
 
-    test('Test transport reads messages where header and body are sent separately', () async {
+    test(
+        'Test transport reads messages where header and body are sent separately',
+        () async {
       // buffer into which we'll read
-      var readBuffer = new Uint8List(10);
+      var readBuffer = Uint8List(10);
       var readBytes;
 
       // registers for readable bytes
@@ -59,21 +61,22 @@ void main() {
       });
 
       // write header bytes
-      socket.messageController.add(new Uint8List.fromList([0x00, 0x00, 0x00, 0x06]));
+      socket.messageController
+          .add(Uint8List.fromList([0x00, 0x00, 0x00, 0x06]));
 
       // you shouldn't be able to get any bytes from the read,
       // because the header has been consumed internally
       expectNoReadableBytes();
 
       // write first batch of body
-      socket.messageController.add(new Uint8List.fromList(utf8.encode("He")));
+      socket.messageController.add(Uint8List.fromList(utf8.encode("He")));
 
       // you shouldn't be able to get any bytes from the read,
       // because the frame has been consumed internally
       expectNoReadableBytes();
 
       // write second batch of body
-      socket.messageController.add(new Uint8List.fromList(utf8.encode("llo!")));
+      socket.messageController.add(Uint8List.fromList(utf8.encode("llo!")));
 
       // have to wait for the flush to complete,
       // because it's only then that the frame is available for reading
@@ -86,10 +89,11 @@ void main() {
       expect(readBuffer.sublist(0, 6), utf8.encode("Hello!"));
     });
 
-    test('Test transport reads messages where header is sent in pieces '
-         'and body is also sent in pieces', () async {
+    test(
+        'Test transport reads messages where header is sent in pieces '
+        'and body is also sent in pieces', () async {
       // buffer into which we'll read
-      var readBuffer = new Uint8List(10);
+      var readBuffer = Uint8List(10);
       var readBytes;
 
       // registers for readable bytes
@@ -99,27 +103,27 @@ void main() {
       });
 
       // write first part of header bytes
-      socket.messageController.add(new Uint8List.fromList([0x00, 0x00]));
+      socket.messageController.add(Uint8List.fromList([0x00, 0x00]));
 
       // you shouldn't be able to get any bytes from the read
       expectNoReadableBytes();
 
       // write second part of header bytes
-      socket.messageController.add(new Uint8List.fromList([0x00, 0x03]));
+      socket.messageController.add(Uint8List.fromList([0x00, 0x03]));
 
       // you shouldn't be able to get any bytes from the read again
       // because only the header was read, and there's no frame body
       readBytes = expectNoReadableBytes();
 
       // write first batch of body
-      socket.messageController.add(new Uint8List.fromList(utf8.encode("H")));
+      socket.messageController.add(Uint8List.fromList(utf8.encode("H")));
 
       // you shouldn't be able to get any bytes from the read,
       // because the frame has been consumed internally
       expectNoReadableBytes();
 
       // write second batch of body
-      socket.messageController.add(new Uint8List.fromList(utf8.encode("i!")));
+      socket.messageController.add(Uint8List.fromList(utf8.encode("i!")));
 
       // have to wait for the flush to complete,
       // because it's only then that the frame is available for reading
@@ -134,17 +138,18 @@ void main() {
   });
 }
 
-
-
 class FakeReadOnlySocket extends TSocket {
-
-  StreamController<Uint8List> messageController = new StreamController<Uint8List>(sync: true);
-  StreamController<Object> errorController = new StreamController<Object>();
-  StreamController<TSocketState> stateController = new StreamController<TSocketState>();
+  StreamController<Uint8List> messageController =
+      StreamController<Uint8List>(sync: true);
+  StreamController<Object> errorController = StreamController<Object>();
+  StreamController<TSocketState> stateController =
+      StreamController<TSocketState>();
 
   @override
-  Future close() {
-    // noop
+  Future close() async {
+    messageController.close();
+    errorController.close();
+    stateController.close();
   }
 
   @override
@@ -163,7 +168,7 @@ class FakeReadOnlySocket extends TSocket {
   Stream<TSocketState> get onState => stateController.stream;
 
   @override
-  Future open() {
+  Future open() async {
     // noop
   }
 
@@ -172,4 +177,3 @@ class FakeReadOnlySocket extends TSocket {
     // noop
   }
 }
-
diff --git a/lib/dart/test/transport/t_http_transport_test.dart b/lib/dart/test/transport/t_http_transport_test.dart
index 03ccede..13f0ee9 100644
--- a/lib/dart/test/transport/t_http_transport_test.dart
+++ b/lib/dart/test/transport/t_http_transport_test.dart
@@ -20,9 +20,9 @@ library thrift.test.transport.t_socket_transport_test;
 import 'dart:async';
 import 'dart:convert' show Encoding;
 import 'dart:convert' show Utf8Codec;
+import 'dart:convert' show base64;
 import 'dart:typed_data' show Uint8List;
 
-import 'package:dart2_constant/convert.dart' show base64;
 import 'package:http/http.dart' show BaseRequest;
 import 'package:http/http.dart' show Client;
 import 'package:http/http.dart' show Response;
@@ -31,16 +31,16 @@ import 'package:test/test.dart';
 import 'package:thrift/thrift.dart';
 
 void main() {
-  const utf8Codec = const Utf8Codec();
+  const utf8Codec = Utf8Codec();
 
   group('THttpClientTransport', () {
     FakeHttpClient client;
     THttpClientTransport transport;
 
     setUp(() {
-      client = new FakeHttpClient(sync: false);
-      var config = new THttpConfig(Uri.parse('http://localhost'), {});
-      transport = new THttpClientTransport(client, config);
+      client = FakeHttpClient(sync: false);
+      var config = THttpConfig(Uri.parse('http://localhost'), {});
+      transport = THttpClientTransport(client, config);
     });
 
     test('Test transport sends body', () async {
@@ -69,7 +69,7 @@ void main() {
 
       expect(transport.hasReadData, isTrue);
 
-      var buffer = new Uint8List(expectedBytes.length);
+      var buffer = Uint8List(expectedBytes.length);
       transport.readAll(buffer, 0, expectedBytes.length);
 
       var bufferText = utf8Codec.decode(buffer);
@@ -82,9 +82,9 @@ void main() {
     THttpClientTransport transport;
 
     setUp(() {
-      client = new FakeHttpClient(sync: true);
-      var config = new THttpConfig(Uri.parse('http://localhost'), {});
-      transport = new THttpClientTransport(client, config);
+      client = FakeHttpClient(sync: true);
+      var config = THttpConfig(Uri.parse('http://localhost'), {});
+      transport = THttpClientTransport(client, config);
     });
 
     test('Test read correct buffer after flush', () async {
@@ -97,7 +97,7 @@ void main() {
       client.postResponse = base64.encode(expectedBytes);
 
       Future responseReady = transport.flush().then((_) {
-        var buffer = new Uint8List(expectedBytes.length);
+        var buffer = Uint8List(expectedBytes.length);
         transport.readAll(buffer, 0, expectedBytes.length);
         bufferText = utf8Codec.decode(buffer);
       });
@@ -120,45 +120,55 @@ class FakeHttpClient implements Client {
 
   final bool sync;
 
-  FakeHttpClient({this.sync: false});
+  FakeHttpClient({this.sync = false});
 
+  @override
   Future<Response> post(url,
       {Map<String, String> headers, body, Encoding encoding}) {
     postRequest = body;
-    var response = new Response(postResponse, 200);
+    var response = Response(postResponse, 200);
 
     if (sync) {
-      return new Future.sync(() => response);
+      return Future.sync(() => response);
     } else {
-      return new Future.value(response);
+      return Future.value(response);
     }
   }
 
+  @override
   Future<Response> head(url, {Map<String, String> headers}) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
+  @override
   Future<Response> get(url, {Map<String, String> headers}) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
+  @override
   Future<Response> put(url,
           {Map<String, String> headers, body, Encoding encoding}) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
+  @override
   Future<Response> patch(url,
           {Map<String, String> headers, body, Encoding encoding}) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
+  @override
   Future<Response> delete(url, {Map<String, String> headers}) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
+  @override
   Future<String> read(url, {Map<String, String> headers}) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
+  @override
   Future<Uint8List> readBytes(url, {Map<String, String> headers}) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
+  @override
   Future<StreamedResponse> send(BaseRequest request) =>
-      throw new UnimplementedError();
+      throw UnimplementedError();
 
-  void close() => throw new UnimplementedError();
+  @override
+  void close() => throw UnimplementedError();
 }
diff --git a/lib/dart/test/transport/t_socket_transport_test.dart b/lib/dart/test/transport/t_socket_transport_test.dart
index 90bffbe..d46f5ed 100644
--- a/lib/dart/test/transport/t_socket_transport_test.dart
+++ b/lib/dart/test/transport/t_socket_transport_test.dart
@@ -18,24 +18,22 @@
 library thrift.test.transport.t_socket_transport_test;
 
 import 'dart:async';
-import 'dart:convert' show Utf8Codec;
+import 'dart:convert' show Utf8Codec, base64;
 import 'dart:typed_data' show Uint8List;
 
-import 'package:dart2_constant/convert.dart' show base64;
-import 'package:dart2_constant/core.dart' as core;
 import 'package:mockito/mockito.dart';
 import 'package:test/test.dart';
 import 'package:thrift/thrift.dart';
 
 void main() {
-  const utf8Codec = const Utf8Codec();
+  const utf8Codec = Utf8Codec();
 
   final requestText = 'my test request';
-  final requestBytes = new Uint8List.fromList(utf8Codec.encode(requestText));
+  final requestBytes = Uint8List.fromList(utf8Codec.encode(requestText));
   final requestBase64 = base64.encode(requestBytes);
 
   final responseText = 'response 1';
-  final responseBytes = new Uint8List.fromList(utf8Codec.encode(responseText));
+  final responseBytes = Uint8List.fromList(utf8Codec.encode(responseText));
   final responseBase64 = base64.encode(responseBytes);
 
   final framedResponseBase64 = base64.encode(_getFramedResponse(responseBytes));
@@ -45,9 +43,9 @@ void main() {
     TTransport transport;
 
     setUp(() async {
-      socket = new FakeSocket(sync: false);
+      socket = FakeSocket(sync: false);
       await socket.open();
-      transport = new TClientSocketTransport(socket);
+      transport = TClientSocketTransport(socket);
       await transport.open();
       transport.writeAll(requestBytes);
     });
@@ -58,7 +56,7 @@ void main() {
       Future responseReady = transport.flush();
 
       // allow microtask events to finish
-      await new Future.value();
+      await Future.value();
 
       expect(socket.sendPayload, isNotNull);
       expect(socket.sendPayload, requestBytes);
@@ -67,23 +65,23 @@ void main() {
       socket.receiveFakeMessage(responseBase64);
 
       await responseReady;
-      var buffer = new Uint8List(responseBytes.length);
+      var buffer = Uint8List(responseBytes.length);
       transport.readAll(buffer, 0, responseBytes.length);
       var bufferText = utf8Codec.decode(buffer);
 
       expect(bufferText, responseText);
     });
-  }, timeout: new Timeout(new Duration(seconds: 1)));
+  }, timeout: Timeout(Duration(seconds: 1)));
 
   group('TClientSocketTransport with FramedTransport', () {
     FakeSocket socket;
     TTransport transport;
 
     setUp(() async {
-      socket = new FakeSocket(sync: true);
+      socket = FakeSocket(sync: true);
       await socket.open();
 
-      transport = new TFramedTransport(new TClientSocketTransport(socket));
+      transport = TFramedTransport(TClientSocketTransport(socket));
       await transport.open();
       transport.writeAll(requestBytes);
     });
@@ -92,7 +90,7 @@ void main() {
       String bufferText;
 
       Future responseReady = transport.flush().then((_) {
-        var buffer = new Uint8List(responseBytes.length);
+        var buffer = Uint8List(responseBytes.length);
         transport.readAll(buffer, 0, responseBytes.length);
         bufferText = utf8Codec.decode(buffer);
       });
@@ -103,7 +101,7 @@ void main() {
       await responseReady;
       expect(bufferText, responseText);
     });
-  }, timeout: new Timeout(new Duration(seconds: 1)));
+  }, timeout: Timeout(Duration(seconds: 1)));
 
   group('TAsyncClientSocketTransport', () {
     FakeSocket socket;
@@ -111,14 +109,14 @@ void main() {
     TTransport transport;
 
     setUp(() async {
-      socket = new FakeSocket(sync: true);
+      socket = FakeSocket(sync: true);
       await socket.open();
 
-      protocolFactory = new FakeProtocolFactory();
-      protocolFactory.message = new TMessage('foo', TMessageType.CALL, 123);
-      transport = new TAsyncClientSocketTransport(
-          socket, new TMessageReader(protocolFactory),
-          responseTimeout: core.Duration.zero);
+      protocolFactory = FakeProtocolFactory();
+      protocolFactory.message = TMessage('foo', TMessageType.CALL, 123);
+      transport = TAsyncClientSocketTransport(
+          socket, TMessageReader(protocolFactory),
+          responseTimeout: Duration.zero);
       await transport.open();
       transport.writeAll(requestBytes);
     });
@@ -127,21 +125,20 @@ void main() {
       String bufferText;
 
       Future responseReady = transport.flush().then((_) {
-        var buffer = new Uint8List(responseBytes.length);
+        var buffer = Uint8List(responseBytes.length);
         transport.readAll(buffer, 0, responseBytes.length);
         bufferText = utf8Codec.decode(buffer);
       });
 
       // simulate a response
-      protocolFactory.message = new TMessage('foo', TMessageType.REPLY, 123);
+      protocolFactory.message = TMessage('foo', TMessageType.REPLY, 123);
       socket.receiveFakeMessage(responseBase64);
 
       // simulate a second response
       var response2Text = 'response 2';
-      var response2Bytes =
-          new Uint8List.fromList(utf8Codec.encode(response2Text));
+      var response2Bytes = Uint8List.fromList(utf8Codec.encode(response2Text));
       var response2Base64 = base64.encode(response2Bytes);
-      protocolFactory.message = new TMessage('foo2', TMessageType.REPLY, 124);
+      protocolFactory.message = TMessage('foo2', TMessageType.REPLY, 124);
       socket.receiveFakeMessage(response2Base64);
 
       await responseReady;
@@ -150,9 +147,9 @@ void main() {
 
     test('Test response timeout', () async {
       Future responseReady = transport.flush();
-      expect(responseReady, throwsA(new isInstanceOf<TimeoutException>()));
+      expect(responseReady, throwsA(isA<TimeoutException>()));
     });
-  }, timeout: new Timeout(new Duration(seconds: 1)));
+  }, timeout: Timeout(Duration(seconds: 1)));
 
   group('TAsyncClientSocketTransport with TFramedTransport', () {
     FakeSocket socket;
@@ -160,17 +157,17 @@ void main() {
     TTransport transport;
 
     setUp(() async {
-      socket = new FakeSocket(sync: true);
+      socket = FakeSocket(sync: true);
       await socket.open();
 
-      protocolFactory = new FakeProtocolFactory();
-      protocolFactory.message = new TMessage('foo', TMessageType.CALL, 123);
-      var messageReader = new TMessageReader(protocolFactory,
+      protocolFactory = FakeProtocolFactory();
+      protocolFactory.message = TMessage('foo', TMessageType.CALL, 123);
+      var messageReader = TMessageReader(protocolFactory,
           byteOffset: TFramedTransport.headerByteCount);
 
-      transport = new TFramedTransport(new TAsyncClientSocketTransport(
+      transport = TFramedTransport(TAsyncClientSocketTransport(
           socket, messageReader,
-          responseTimeout: core.Duration.zero));
+          responseTimeout: Duration.zero));
       await transport.open();
       transport.writeAll(requestBytes);
     });
@@ -179,37 +176,37 @@ void main() {
       String bufferText;
 
       Future responseReady = transport.flush().then((_) {
-        var buffer = new Uint8List(responseBytes.length);
+        var buffer = Uint8List(responseBytes.length);
         transport.readAll(buffer, 0, responseBytes.length);
         bufferText = utf8Codec.decode(buffer);
       });
 
       // simulate a response
-      protocolFactory.message = new TMessage('foo', TMessageType.REPLY, 123);
+      protocolFactory.message = TMessage('foo', TMessageType.REPLY, 123);
       socket.receiveFakeMessage(framedResponseBase64);
 
       await responseReady;
       expect(bufferText, responseText);
     });
-  }, timeout: new Timeout(new Duration(seconds: 1)));
+  }, timeout: Timeout(Duration(seconds: 1)));
 
   group('TServerTransport', () {
     test('Test server transport listens to socket', () async {
-      var socket = new FakeSocket();
+      var socket = FakeSocket();
       await socket.open();
       expect(socket.isOpen, isTrue);
 
-      var transport = new TServerSocketTransport(socket);
+      var transport = TServerSocketTransport(socket);
       expect(transport.hasReadData, isFalse);
 
       socket.receiveFakeMessage(requestBase64);
 
       // allow microtask events to finish
-      await new Future.value();
+      await Future.value();
 
       expect(transport.hasReadData, isTrue);
 
-      var buffer = new Uint8List(requestBytes.length);
+      var buffer = Uint8List(requestBytes.length);
       transport.readAll(buffer, 0, requestBytes.length);
 
       var bufferText = utf8Codec.decode(buffer);
@@ -217,10 +214,10 @@ void main() {
     });
 
     test('Test server sending data over transport', () async {
-      var socket = new FakeSocket();
+      var socket = FakeSocket();
       await socket.open();
 
-      var transport = new TServerSocketTransport(socket);
+      var transport = TServerSocketTransport(socket);
 
       transport.writeAll(responseBytes);
       expect(socket.sendPayload, isNull);
@@ -228,40 +225,47 @@ void main() {
       transport.flush();
 
       // allow microtask events to finish
-      await new Future.value();
+      await Future.value();
 
       expect(socket.sendPayload, isNotNull);
       expect(socket.sendPayload, responseBytes);
     });
-  }, timeout: new Timeout(new Duration(seconds: 1)));
+  }, timeout: Timeout(Duration(seconds: 1)));
 }
 
 class FakeSocket extends TSocket {
   final StreamController<TSocketState> _onStateController;
+  @override
   Stream<TSocketState> get onState => _onStateController.stream;
 
   final StreamController<Object> _onErrorController;
+  @override
   Stream<Object> get onError => _onErrorController.stream;
 
   final StreamController<Uint8List> _onMessageController;
+  @override
   Stream<Uint8List> get onMessage => _onMessageController.stream;
 
-  FakeSocket({bool sync: false})
-      : _onStateController = new StreamController.broadcast(sync: sync),
-        _onErrorController = new StreamController.broadcast(sync: sync),
-        _onMessageController = new StreamController.broadcast(sync: sync);
+  FakeSocket({bool sync =  false})
+      : _onStateController = StreamController.broadcast(sync: sync),
+        _onErrorController = StreamController.broadcast(sync: sync),
+        _onMessageController = StreamController.broadcast(sync: sync);
 
   bool _isOpen;
 
+  @override
   bool get isOpen => _isOpen;
 
+  @override
   bool get isClosed => !isOpen;
 
+  @override
   Future open() async {
     _isOpen = true;
     _onStateController.add(TSocketState.OPEN);
   }
 
+  @override
   Future close() async {
     _isOpen = false;
     _onStateController.add(TSocketState.CLOSED);
@@ -270,16 +274,17 @@ class FakeSocket extends TSocket {
   Uint8List _sendPayload;
   Uint8List get sendPayload => _sendPayload;
 
+  @override
   void send(Uint8List data) {
-    if (!isOpen) throw new StateError('The socket is not open');
+    if (!isOpen) throw StateError('The socket is not open');
 
     _sendPayload = data;
   }
 
   void receiveFakeMessage(String base64text) {
-    if (!isOpen) throw new StateError('The socket is not open');
+    if (!isOpen) throw StateError('The socket is not open');
 
-    var message = new Uint8List.fromList(base64.decode(base64text));
+    var message = Uint8List.fromList(base64.decode(base64text));
     _onMessageController.add(message);
   }
 }
@@ -289,7 +294,8 @@ class FakeProtocolFactory implements TProtocolFactory {
 
   TMessage message;
 
-  getProtocol(TTransport transport) => new FakeProtocol(message);
+  @override
+  getProtocol(TTransport transport) => FakeProtocol(message);
 }
 
 class FakeProtocol extends Mock implements TProtocol {
@@ -297,12 +303,13 @@ class FakeProtocol extends Mock implements TProtocol {
 
   TMessage _message;
 
+  @override
   readMessageBegin() => _message;
 }
 
 Uint8List _getFramedResponse(Uint8List responseBytes) {
   var byteOffset = TFramedTransport.headerByteCount;
-  var response = new Uint8List(byteOffset + responseBytes.length);
+  var response = Uint8List(byteOffset + responseBytes.length);
 
   response.buffer.asByteData().setInt32(0, responseBytes.length);
   response.setAll(byteOffset, responseBytes);
diff --git a/lib/dart/test/transport/t_transport_test.dart b/lib/dart/test/transport/t_transport_test.dart
index 0bb381a..4758593 100644
--- a/lib/dart/test/transport/t_transport_test.dart
+++ b/lib/dart/test/transport/t_transport_test.dart
@@ -25,14 +25,14 @@ void main() {
   group('TTransportFactory', () {
     test('transport is returned from base factory', () async {
       TTransport result;
-      TTransport transport = null;
+      TTransport transport;
 
-      var factory = new TTransportFactory();
+      var factory = TTransportFactory();
 
       result = await factory.getTransport(transport);
       expect(result, isNull);
 
-      transport = new TBufferedTransport();
+      transport = TBufferedTransport();
       result = await factory.getTransport(transport);
 
       expect(result, transport);
diff --git a/lib/dart/tool/dev.dart b/lib/dart/tool/dev.dart
deleted file mode 100644
index 27f8b8f..0000000
--- a/lib/dart/tool/dev.dart
+++ /dev/null
@@ -1,33 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-library tool.dev;
-
-import 'package:dart_dev/dart_dev.dart' show dev, config;
-
-main(List<String> args) async {
-  // https://github.com/Workiva/dart_dev
-
-  var directories = ['lib/', 'test/', 'tool/'];
-  config.analyze.entryPoints = directories;
-  config.format.directories = directories;
-  config.copyLicense
-    ..licensePath = 'LICENSE_HEADER'
-    ..directories = directories;
-
-  await dev(args);
-}
diff --git a/test/dart/test_client/.analysis_options b/test/dart/test_client/.analysis_options
deleted file mode 100644
index a10d4c5..0000000
--- a/test/dart/test_client/.analysis_options
+++ /dev/null
@@ -1,2 +0,0 @@
-analyzer:
-  strong-mode: true
diff --git a/tutorial/dart/Makefile.am b/tutorial/dart/Makefile.am
index 0b93ac8..860f292 100644
--- a/tutorial/dart/Makefile.am
+++ b/tutorial/dart/Makefile.am
@@ -75,7 +75,4 @@ EXTRA_DIST = \
 	console_client/pubspec.yaml \
 	server/bin/main.dart \
 	server/pubspec.yaml \
-	console_client/.analysis_options \
-	client/.analysis_options \
-	server/.analysis_options \
 	build.sh
diff --git a/tutorial/dart/client/.analysis_options b/tutorial/dart/client/.analysis_options
deleted file mode 100644
index a10d4c5..0000000
--- a/tutorial/dart/client/.analysis_options
+++ /dev/null
@@ -1,2 +0,0 @@
-analyzer:
-  strong-mode: true
diff --git a/tutorial/dart/console_client/.analysis_options b/tutorial/dart/console_client/.analysis_options
deleted file mode 100644
index a10d4c5..0000000
--- a/tutorial/dart/console_client/.analysis_options
+++ /dev/null
@@ -1,2 +0,0 @@
-analyzer:
-  strong-mode: true
diff --git a/tutorial/dart/server/.analysis_options b/tutorial/dart/server/.analysis_options
deleted file mode 100644
index a10d4c5..0000000
--- a/tutorial/dart/server/.analysis_options
+++ /dev/null
@@ -1,2 +0,0 @@
-analyzer:
-  strong-mode: true