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

Side by Side Diff: pkg/compiler/lib/src/patch_parser.dart

Issue 804333002: Add CoreTypes interface. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years 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 /** 5 /**
6 * This library contains the infrastructure to parse and integrate patch files. 6 * This library contains the infrastructure to parse and integrate patch files.
7 * 7 *
8 * Three types of elements can be patched: [LibraryElement], [ClassElement], 8 * Three types of elements can be patched: [LibraryElement], [ClassElement],
9 * [FunctionElement]. Patches are introduced in patch libraries which are loaded 9 * [FunctionElement]. Patches are introduced in patch libraries which are loaded
10 * together with the corresponding origin library. Which libraries that are 10 * together with the corresponding origin library. Which libraries that are
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 return true; 372 return true;
373 } 373 }
374 } 374 }
375 return false; 375 return false;
376 } 376 }
377 377
378 void validate(Compiler compiler, 378 void validate(Compiler compiler,
379 Element element, 379 Element element,
380 MetadataAnnotation annotation, 380 MetadataAnnotation annotation,
381 ConstantValue constant) { 381 ConstantValue constant) {
382 if (constant.computeType(compiler).element != 382 if (constant.getType(compiler.coreTypes).element !=
383 compiler.nativeAnnotationClass) { 383 compiler.nativeAnnotationClass) {
384 compiler.internalError(annotation, 'Invalid @Native(...) annotation.'); 384 compiler.internalError(annotation, 'Invalid @Native(...) annotation.');
385 } 385 }
386 } 386 }
387 } 387 }
388 388
389 /// Annotation handler for pre-resolution detection of `@patch` annotations. 389 /// Annotation handler for pre-resolution detection of `@patch` annotations.
390 class PatchAnnotationHandler implements EagerAnnotationHandler { 390 class PatchAnnotationHandler implements EagerAnnotationHandler {
391 const PatchAnnotationHandler(); 391 const PatchAnnotationHandler();
392 392
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 "Trying to patch a function more than once."); 504 "Trying to patch a function more than once.");
505 } 505 }
506 origin.applyPatch(patch); 506 origin.applyPatch(patch);
507 } 507 }
508 508
509 // TODO(johnniwinther): Add unittest when patch is (real) metadata. 509 // TODO(johnniwinther): Add unittest when patch is (real) metadata.
510 bool isPatchElement(Compiler compiler, Element element) { 510 bool isPatchElement(Compiler compiler, Element element) {
511 return EagerAnnotationHandler.checkAnnotation(compiler, element, 511 return EagerAnnotationHandler.checkAnnotation(compiler, element,
512 const PatchAnnotationHandler()); 512 const PatchAnnotationHandler());
513 } 513 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698