diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2dfac86..f845707 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.1.6
+
+* Fix two analysis issues with DDC's strong mode.
+
 ## 2.1.5
 
 * Fix a bug with 2.1.4 where source span information was being discarded for
diff --git a/lib/src/loader.dart b/lib/src/loader.dart
index 5336310..82ae455 100644
--- a/lib/src/loader.dart
+++ b/lib/src/loader.dart
@@ -63,7 +63,7 @@
   YamlDocument _loadDocument(DocumentStartEvent firstEvent) {
     var contents = _loadNode(_parser.parse());
 
-    var lastEvent = _parser.parse();
+    var lastEvent = _parser.parse() as DocumentEndEvent;
     assert(lastEvent.type == EventType.DOCUMENT_END);
 
     return new YamlDocument.internal(
diff --git a/lib/src/parser.dart b/lib/src/parser.dart
index 8bb131f..136247b 100644
--- a/lib/src/parser.dart
+++ b/lib/src/parser.dart
@@ -115,7 +115,7 @@
   ///
   ///     stream ::=
   ///       STREAM-START implicit_document? explicit_document* STREAM-END
-  ///       ************  
+  ///       ************
   Event _parseStreamStart() {
     var token = _scanner.scan();
     assert(token.type == TokenType.STREAM_START);
@@ -183,7 +183,7 @@
   ///
   ///     explicit_document    ::=
   ///       DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*
-  ///                                 ***********  
+  ///                                 ***********
   Event _parseDocumentContent() {
     var token = _scanner.peek();
 
@@ -462,7 +462,7 @@
   ///
   ///                              (VALUE block_node_or_indentless_sequence?)?)*
   ///                               ***** *
-  ///                              BLOCK-END  
+  ///                              BLOCK-END
   ///
   Event _parseBlockMappingValue() {
     var token = _scanner.peek();
@@ -527,7 +527,7 @@
     _scanner.scan();
     _state = _states.removeLast();
     return new Event(EventType.SEQUENCE_END, token.span);
-  }  
+  }
 
   /// Parses the productions:
   ///
@@ -670,7 +670,7 @@
     var token = _scanner.peek();
 
     var versionDirective;
-    var tagDirectives = [];
+    var tagDirectives = <TagDirective>[];
     while (token.type == TokenType.VERSION_DIRECTIVE ||
            token.type == TokenType.TAG_DIRECTIVE) {
       if (token is VersionDirectiveToken) {
@@ -699,7 +699,7 @@
 
       token = _scanner.advance();
     }
-    
+
     _appendTagDirective(
         new TagDirective("!", "!"),
         token.span.start.pointSpan(),
diff --git a/pubspec.yaml b/pubspec.yaml
index f91d9cf..9d92334 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: yaml
-version: 2.1.5
+version: 2.1.6
 author: "Dart Team <misc@dartlang.org>"
 homepage: https://github.com/dart-lang/yaml
 description: A parser for YAML.
