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

Side by Side Diff: compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java

Issue 10860012: Add support for metadata annotation syntax (issue 4056) (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 package com.google.dart.compiler.resolver; 5 package com.google.dart.compiler.resolver;
6 6
7 import com.google.common.annotations.VisibleForTesting; 7 import com.google.common.annotations.VisibleForTesting;
8 import com.google.common.base.Objects; 8 import com.google.common.base.Objects;
9 import com.google.dart.compiler.DartCompilerContext; 9 import com.google.dart.compiler.DartCompilerContext;
10 import com.google.dart.compiler.ErrorCode; 10 import com.google.dart.compiler.ErrorCode;
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 modifiers = modifiers.makeStatic(); 348 modifiers = modifiers.makeStatic();
349 // Set the "const" modifier so that it is easy to compare a constant fie ld to other 349 // Set the "const" modifier so that it is easy to compare a constant fie ld to other
350 // types of constant expressions. 350 // types of constant expressions.
351 modifiers = modifiers.makeConstant(); 351 modifiers = modifiers.makeConstant();
352 } 352 }
353 if (fieldNode.getValue() != null) { 353 if (fieldNode.getValue() != null) {
354 modifiers = modifiers.makeInitialized(); 354 modifiers = modifiers.makeInitialized();
355 } 355 }
356 FieldNodeElement fieldElement = fieldNode.getElement(); 356 FieldNodeElement fieldElement = fieldNode.getElement();
357 if (fieldElement == null) { 357 if (fieldElement == null) {
358 fieldElement = Elements.fieldFromNode(fieldNode, currentHolder, fieldNod e.getMetadata(), 358 fieldElement = Elements.fieldFromNode(fieldNode, currentHolder, fieldNod e.getObsoleteMetadata(),
359 modifiers); 359 modifiers);
360 addField(currentHolder, fieldElement); 360 addField(currentHolder, fieldElement);
361 } else { 361 } else {
362 // This is a top-level element, and an element was already created in 362 // This is a top-level element, and an element was already created in
363 // TopLevelElementBuilder. 363 // TopLevelElementBuilder.
364 Elements.addField(currentHolder, fieldElement); 364 Elements.addField(currentHolder, fieldElement);
365 assertTopLevel(fieldNode); 365 assertTopLevel(fieldNode);
366 } 366 }
367 fieldElement.setType(type); 367 fieldElement.setType(type);
368 recordElement(fieldNode.getName(), fieldElement); 368 recordElement(fieldNode.getName(), fieldElement);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 element = topLevelContext.getScope().findElement(context.getScope().getL ibrary(), name); 432 element = topLevelContext.getScope().findElement(context.getScope().getL ibrary(), name);
433 } 433 }
434 434
435 FieldElementImplementation fieldElement = null; 435 FieldElementImplementation fieldElement = null;
436 if (element == null || element.getKind().equals(ElementKind.FIELD) 436 if (element == null || element.getKind().equals(ElementKind.FIELD)
437 && element.getModifiers().isAbstractField()) { 437 && element.getModifiers().isAbstractField()) {
438 fieldElement = (FieldElementImplementation) element; 438 fieldElement = (FieldElementImplementation) element;
439 } 439 }
440 440
441 if (fieldElement == null) { 441 if (fieldElement == null) {
442 fieldElement = Elements.fieldFromNode(fieldNode, currentHolder, fieldNod e.getMetadata(), 442 fieldElement = Elements.fieldFromNode(fieldNode, currentHolder, fieldNod e.getObsoleteMetadata(),
443 fieldNode.getModifiers()); 443 fieldNode.getModifiers());
444 addField(currentHolder, fieldElement); 444 addField(currentHolder, fieldElement);
445 } 445 }
446 446
447 if (accessorNode.getModifiers().isGetter()) { 447 if (accessorNode.getModifiers().isGetter()) {
448 if (fieldElement.getGetter() != null) { 448 if (fieldElement.getGetter() != null) {
449 if (!topLevelDefinition) { 449 if (!topLevelDefinition) {
450 reportDuplicateDeclaration(ResolverErrorCode.DUPLICATE_MEMBER, field Element.getGetter()); 450 reportDuplicateDeclaration(ResolverErrorCode.DUPLICATE_MEMBER, field Element.getGetter());
451 reportDuplicateDeclaration(ResolverErrorCode.DUPLICATE_MEMBER, acces sorElement); 451 reportDuplicateDeclaration(ResolverErrorCode.DUPLICATE_MEMBER, acces sorElement);
452 } 452 }
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 */ 667 */
668 private void reportDuplicateDeclaration(ErrorCode errorCode, Element element ) { 668 private void reportDuplicateDeclaration(ErrorCode errorCode, Element element ) {
669 String name = 669 String name =
670 element instanceof MethodElement 670 element instanceof MethodElement
671 ? Elements.getRawMethodName((MethodElement) element) 671 ? Elements.getRawMethodName((MethodElement) element)
672 : element.getName(); 672 : element.getName();
673 resolutionError(element.getNameLocation(), errorCode, name); 673 resolutionError(element.getNameLocation(), errorCode, name);
674 } 674 }
675 } 675 }
676 } 676 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698