From 7ec65fb9ca1eebb2b5990f4dd99d8f5e71c6b166 Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Tue, 22 Nov 2016 15:03:41 -0800 Subject: [PATCH] Fix for exception duirng indexing a reference to MultiplyDefinedElement. R=brianwilkerson@google.com, paulberry@google.com BUG= Review URL: https://codereview.chromium.org/2529433003 . --- pkg/analyzer/lib/src/dart/analysis/index.dart | 1 + pkg/analyzer/test/src/dart/analysis/index_test.dart | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/pkg/analyzer/lib/src/dart/analysis/index.dart b/pkg/analyzer/lib/src/dart/analysis/index.dart index 8191ca47f03..6b5c09c5963 100644 --- a/pkg/analyzer/lib/src/dart/analysis/index.dart +++ b/pkg/analyzer/lib/src/dart/analysis/index.dart @@ -426,6 +426,7 @@ class _IndexContributor extends GeneralizingAstVisitor { ElementKind elementKind = element?.kind; if (elementKind == null || elementKind == ElementKind.DYNAMIC || + elementKind == ElementKind.ERROR || elementKind == ElementKind.LABEL || elementKind == ElementKind.LOCAL_VARIABLE || elementKind == ElementKind.PREFIX || diff --git a/pkg/analyzer/test/src/dart/analysis/index_test.dart b/pkg/analyzer/test/src/dart/analysis/index_test.dart index 04048636e32..d090dbb8523 100644 --- a/pkg/analyzer/test/src/dart/analysis/index_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/index_test.dart @@ -793,6 +793,16 @@ class A { ..isReferencedAt('method); // nq', false); } + test_isReferencedBy_MultiplyDefinedElement() async { + provider.newFile(_p('$testProject/a1.dart'), 'class A {}'); + provider.newFile(_p('$testProject/a2.dart'), 'class A {}'); + await _indexTestUnit(''' +import 'a1.dart'; +import 'a2.dart'; +A v = null; +'''); + } + test_isReferencedBy_ParameterElement() async { await _indexTestUnit(''' foo({var p}) {}