Test that type of the ListLiteral with two different enums is inferred.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I7b0980008fe58a1b430f989af72fb04c0fb07c8c
Reviewed-on: https://dart-review.googlesource.com/75385
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart
index 59f4e77..2095404 100644
--- a/pkg/analyzer/lib/src/summary/link.dart
+++ b/pkg/analyzer/lib/src/summary/link.dart
@@ -945,6 +945,9 @@
   bool get isEnum => true;
 
   @override
+  bool get isMixin => false;
+
+  @override
   bool get isObject => false;
 
   @override
diff --git a/pkg/analyzer/test/src/dart/resolution/enum_test.dart b/pkg/analyzer/test/src/dart/resolution/enum_test.dart
index 2e18dd0..2171622 100644
--- a/pkg/analyzer/test/src/dart/resolution/enum_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/enum_test.dart
@@ -26,6 +26,20 @@
     await resolveTestFile();
     assertTestErrors([CompileTimeErrorCode.CONFLICTING_STATIC_AND_INSTANCE]);
   }
+
+  test_inference_listLiteral() async {
+    addTestFile(r'''
+enum E1 {a, b}
+enum E2 {a, b}
+
+var v = [E1.a, E2.b];
+''');
+    await resolveTestFile();
+    assertNoTestErrors();
+
+    var v = findElement.topVar('v');
+    assertElementTypeString(v.type, 'List<Object>');
+  }
 }
 
 @reflectiveTest
diff --git a/tests/language_2/inference_enum_list_test.dart b/tests/language_2/inference_enum_list_test.dart
new file mode 100644
index 0000000..dc7b7bd3
--- /dev/null
+++ b/tests/language_2/inference_enum_list_test.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+enum E1 { a, b }
+enum E2 { a, b }
+
+var v = [E1.a, E2.b];
+
+main() {
+  // Test that v is `List<Object>`, so any of these assignemnts are OK.
+  v[0] = 0;
+  v[1] = '1';
+}