| OLD | NEW |
| 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 /** | 6 /** |
| 7 * If true, print a warning for each method that was resolved, but not | 7 * If true, print a warning for each method that was resolved, but not |
| 8 * compiled. | 8 * compiled. |
| 9 */ | 9 */ |
| 10 final bool REPORT_EXCESS_RESOLUTION = false; | 10 final bool REPORT_EXCESS_RESOLUTION = false; |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 scanner.importLibrary(library, | 372 scanner.importLibrary(library, |
| 373 coreLibrary, | 373 coreLibrary, |
| 374 null, | 374 null, |
| 375 library.entryCompilationUnit); | 375 library.entryCompilationUnit); |
| 376 } | 376 } |
| 377 | 377 |
| 378 void patchDartLibrary(LibraryElement library, String dartLibraryPath) { | 378 void patchDartLibrary(LibraryElement library, String dartLibraryPath) { |
| 379 if (library.isPatched) return; | 379 if (library.isPatched) return; |
| 380 Uri patchUri = resolvePatchUri(dartLibraryPath); | 380 Uri patchUri = resolvePatchUri(dartLibraryPath); |
| 381 if (patchUri !== null) { | 381 if (patchUri !== null) { |
| 382 patchParser.patchLibrary(patchUri, library); | 382 patchParser.patchLibrary(patchUri, library); |
| 383 // We allow foreign functions in patched libraries. | |
| 384 addForeignFunctions(library); // Is safe even if already added. | |
| 385 } | 383 } |
| 386 } | 384 } |
| 387 | 385 |
| 388 void applyContainerPatch(ScopeContainerElement original, | 386 void applyContainerPatch(ScopeContainerElement original, |
| 389 Link<Element> patches) { | 387 Link<Element> patches) { |
| 390 while (!patches.isEmpty()) { | 388 while (!patches.isEmpty()) { |
| 391 Element patchElement = patches.head; | 389 Element patchElement = patches.head; |
| 392 Element originalElement = original.localLookup(patchElement.name); | 390 Element originalElement = original.localLookup(patchElement.name); |
| 393 if (patchElement.isAccessor()) { | 391 if (patchElement.isAccessor()) { |
| 394 // TODO(lrn): When we change to always add accessors to members, and | 392 // TODO(lrn): When we change to always add accessors to members, and |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 901 final endOffset = end.charOffset + end.slowCharCount; | 899 final endOffset = end.charOffset + end.slowCharCount; |
| 902 | 900 |
| 903 // [begin] and [end] might be the same for the same empty token. This | 901 // [begin] and [end] might be the same for the same empty token. This |
| 904 // happens for instance when scanning '$$'. | 902 // happens for instance when scanning '$$'. |
| 905 assert(endOffset >= beginOffset); | 903 assert(endOffset >= beginOffset); |
| 906 return f(beginOffset, endOffset); | 904 return f(beginOffset, endOffset); |
| 907 } | 905 } |
| 908 | 906 |
| 909 String toString() => 'SourceSpan($uri, $begin, $end)'; | 907 String toString() => 'SourceSpan($uri, $begin, $end)'; |
| 910 } | 908 } |
| OLD | NEW |