Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Unified Diff: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/MultiplyDefinedElementImpl.java

Issue 23481015: Fix for issue 12726 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/MultiplyDefinedElementImpl.java
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/MultiplyDefinedElementImpl.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/MultiplyDefinedElementImpl.java
index e510ba8dc5a09fc816d7fd2663997fb8f52aa236..ffba068b488cd68bc130c98896a26c704a2179b6 100644
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/MultiplyDefinedElementImpl.java
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/element/MultiplyDefinedElementImpl.java
@@ -26,7 +26,7 @@ import com.google.dart.engine.internal.type.DynamicTypeImpl;
import com.google.dart.engine.source.Source;
import com.google.dart.engine.type.Type;
-import java.util.ArrayList;
+import java.util.HashSet;
/**
* Instances of the class {@code MultiplyDefinedElementImpl} represent a collection of elements that
@@ -59,10 +59,23 @@ public class MultiplyDefinedElementImpl implements MultiplyDefinedElement {
*/
public MultiplyDefinedElementImpl(AnalysisContext context, Element firstElement,
Element secondElement) {
+ this.context = context;
name = firstElement.getName();
conflictingElements = computeConflictingElements(firstElement, secondElement);
}
+ /**
+ * Initialize a newly created element to represent a list of conflicting elements.
+ *
+ * @param context the analysis context in which the multiply defined elements are defined
+ * @param conflictingElements the elements that conflict
+ */
+ public MultiplyDefinedElementImpl(AnalysisContext context, Element[] conflictingElements) {
+ this.context = context;
+ name = conflictingElements[0].getName();
+ this.conflictingElements = conflictingElements;
+ }
+
@Override
public <R> R accept(ElementVisitor<R> visitor) {
return visitor.visitMultiplyDefinedElement(this);
@@ -180,7 +193,7 @@ public class MultiplyDefinedElementImpl implements MultiplyDefinedElement {
* @param elements the list to which the element(s) are to be added
* @param element the element(s) to be added
*/
- private void add(ArrayList<Element> elements, Element element) {
+ private void add(HashSet<Element> elements, Element element) {
if (element instanceof MultiplyDefinedElementImpl) {
for (Element conflictingElement : ((MultiplyDefinedElementImpl) element).conflictingElements) {
elements.add(conflictingElement);
@@ -200,7 +213,7 @@ public class MultiplyDefinedElementImpl implements MultiplyDefinedElement {
* @return an array containing all of the conflicting elements
*/
private Element[] computeConflictingElements(Element firstElement, Element secondElement) {
- ArrayList<Element> elements = new ArrayList<Element>();
+ HashSet<Element> elements = new HashSet<Element>();
add(elements, firstElement);
add(elements, secondElement);
return elements.toArray(new Element[elements.size()]);

Powered by Google App Engine
This is Rietveld 408576698