Don't duplicate comments on chained if elements.

There was a bug where every "else" in a chained if element used the
first element's "else" token instead of its own. This had the
unfortunate side effect of duplicating any comment that appeared before
the first one (and discarding comments on the later ones).

Fix #966.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a5f41bd..a51736f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 1.3.9
+
+* Don't duplicate comments on chained if elements (#966).
+
 # 1.3.8
 
 * Preserve `?` in initializing formal function-typed parameters (#960).
diff --git a/lib/src/source_visitor.dart b/lib/src/source_visitor.dart
index 1fbdaca..6a54395 100644
--- a/lib/src/source_visitor.dart
+++ b/lib/src/source_visitor.dart
@@ -1931,7 +1931,7 @@
           split();
         }
 
-        token(node.elseKeyword);
+        token(element.elseKeyword);
 
         // If there is another if element in the chain, put a space between
         // it and this "else".
diff --git a/pubspec.yaml b/pubspec.yaml
index 08c1843..e840178 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
 name: dart_style
 # Note: See tool/grind.dart for how to bump the version.
-version: 1.3.8+1
+version: 1.3.9-dev
 description: >-
   Opinionated, automatic Dart source code formatter.
   Provides an API and a CLI tool.
diff --git a/test/regression/0900/0966.stmt b/test/regression/0900/0966.stmt
new file mode 100644
index 0000000..e8add96
--- /dev/null
+++ b/test/regression/0900/0966.stmt
@@ -0,0 +1,24 @@
+>>>
+return [
+      for (final x in exampleList)
+        if (conditionA)
+          ItemConstructorA()
+       // Sample multi-line comment
+      // which broke the formatter
+        else if (conditionB)
+           ItemConstructorB()
+     else
+       ItemConstructorC()
+];
+<<<
+return [
+  for (final x in exampleList)
+    if (conditionA)
+      ItemConstructorA()
+    // Sample multi-line comment
+    // which broke the formatter
+    else if (conditionB)
+      ItemConstructorB()
+    else
+      ItemConstructorC()
+];
\ No newline at end of file