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

Side by Side Diff: dart/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/verifier/ErrorVerifier.java

Issue 64033002: Version 0.8.10.8 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013, the Dart project authors. 2 * Copyright (c) 2013, the Dart project authors.
3 * 3 *
4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except
5 * in compliance with the License. You may obtain a copy of the License at 5 * in compliance with the License. You may obtain a copy of the License at
6 * 6 *
7 * http://www.eclipse.org/legal/epl-v10.html 7 * http://www.eclipse.org/legal/epl-v10.html
8 * 8 *
9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License 9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 * A table mapping name of the library to the export directive which export th is library. 328 * A table mapping name of the library to the export directive which export th is library.
329 */ 329 */
330 private HashMap<String, LibraryElement> nameToExportElement = new HashMap<Stri ng, LibraryElement>(); 330 private HashMap<String, LibraryElement> nameToExportElement = new HashMap<Stri ng, LibraryElement>();
331 331
332 /** 332 /**
333 * A table mapping name of the library to the import directive which import th is library. 333 * A table mapping name of the library to the import directive which import th is library.
334 */ 334 */
335 private HashMap<String, LibraryElement> nameToImportElement = new HashMap<Stri ng, LibraryElement>(); 335 private HashMap<String, LibraryElement> nameToImportElement = new HashMap<Stri ng, LibraryElement>();
336 336
337 /** 337 /**
338 * A table mapping names to the export elements exported them. 338 * A table mapping names to the exported elements.
339 */ 339 */
340 private HashMap<String, ExportElement> exportedNames = new HashMap<String, Exp ortElement>(); 340 private HashMap<String, Element> exportedElements = new HashMap<String, Elemen t>();
341 341
342 /** 342 /**
343 * A set of the names of the variable initializers we are visiting now. 343 * A set of the names of the variable initializers we are visiting now.
344 */ 344 */
345 private HashSet<String> namesForReferenceToDeclaredVariableInInitializer = new HashSet<String>(); 345 private HashSet<String> namesForReferenceToDeclaredVariableInInitializer = new HashSet<String>();
346 346
347 /** 347 /**
348 * A list of types used by the {@link CompileTimeErrorCode#EXTENDS_DISALLOWED_ CLASS} and 348 * A list of types used by the {@link CompileTimeErrorCode#EXTENDS_DISALLOWED_ CLASS} and
349 * {@link CompileTimeErrorCode#IMPLEMENTS_DISALLOWED_CLASS} error codes. 349 * {@link CompileTimeErrorCode#IMPLEMENTS_DISALLOWED_CLASS} error codes.
350 */ 350 */
(...skipping 1372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1723 return false; 1723 return false;
1724 } 1724 }
1725 ExportElement exportElement = (ExportElement) node.getElement(); 1725 ExportElement exportElement = (ExportElement) node.getElement();
1726 // prepare exported library 1726 // prepare exported library
1727 LibraryElement exportedLibrary = exportElement.getExportedLibrary(); 1727 LibraryElement exportedLibrary = exportElement.getExportedLibrary();
1728 if (exportedLibrary == null) { 1728 if (exportedLibrary == null) {
1729 return false; 1729 return false;
1730 } 1730 }
1731 // check exported names 1731 // check exported names
1732 Namespace namespace = new NamespaceBuilder().createExportNamespace(exportEle ment); 1732 Namespace namespace = new NamespaceBuilder().createExportNamespace(exportEle ment);
1733 Set<String> newNames = namespace.getDefinedNames().keySet(); 1733 Map<String, Element> definedNames = namespace.getDefinedNames();
1734 for (String name : newNames) { 1734 for (Entry<String, Element> definedEntry : definedNames.entrySet()) {
1735 ExportElement prevElement = exportedNames.get(name); 1735 String name = definedEntry.getKey();
1736 if (prevElement != null && prevElement != exportElement) { 1736 Element element = definedEntry.getValue();
1737 Element prevElement = exportedElements.get(name);
1738 if (element != null && prevElement != null && !prevElement.equals(element) ) {
1737 errorReporter.reportError( 1739 errorReporter.reportError(
1738 CompileTimeErrorCode.AMBIGUOUS_EXPORT, 1740 CompileTimeErrorCode.AMBIGUOUS_EXPORT,
1739 node, 1741 node,
1740 name, 1742 name,
1741 prevElement.getExportedLibrary().getDefiningCompilationUnit().getDis playName(), 1743 prevElement.getLibrary().getDefiningCompilationUnit().getDisplayName (),
1742 exportedLibrary.getDefiningCompilationUnit().getDisplayName()); 1744 element.getLibrary().getDefiningCompilationUnit().getDisplayName());
1743 return true; 1745 return true;
1744 } else { 1746 } else {
1745 exportedNames.put(name, exportElement); 1747 exportedElements.put(name, element);
1746 } 1748 }
1747 } 1749 }
1748 return false; 1750 return false;
1749 } 1751 }
1750 1752
1751 /** 1753 /**
1752 * This verifies that the passed argument definition test identifier is a para meter. 1754 * This verifies that the passed argument definition test identifier is a para meter.
1753 * 1755 *
1754 * @param node the {@link ArgumentDefinitionTest} to evaluate 1756 * @param node the {@link ArgumentDefinitionTest} to evaluate
1755 * @return {@code true} if and only if an error code is generated on the passe d node 1757 * @return {@code true} if and only if an error code is generated on the passe d node
(...skipping 3643 matching lines...) Expand 10 before | Expand all | Expand 10 after
5399 if (superClassElt != null) { 5401 if (superClassElt != null) {
5400 return memberHasConcreteMethodImplementationInSuperclassChain( 5402 return memberHasConcreteMethodImplementationInSuperclassChain(
5401 superClassElt, 5403 superClassElt,
5402 methodName, 5404 methodName,
5403 superclassChain); 5405 superclassChain);
5404 } 5406 }
5405 } 5407 }
5406 return false; 5408 return false;
5407 } 5409 }
5408 } 5410 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698