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

Unified Diff: pkg/compiler/lib/src/native/resolver.dart

Issue 2731173002: Add ClassEntity.library, MemberEntity.library and FunctionEntity.isExternal (Closed)
Patch Set: Updated cf. comments. Created 3 years, 9 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
« no previous file with comments | « pkg/compiler/lib/src/kernel/world_builder.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/native/resolver.dart
diff --git a/pkg/compiler/lib/src/native/resolver.dart b/pkg/compiler/lib/src/native/resolver.dart
index b4da28b51b0f736e3fb92a2bd9e886279ed1ff5a..ab9d11f31cf5b1b0f74fcbfd564d0fbbab506403 100644
--- a/pkg/compiler/lib/src/native/resolver.dart
+++ b/pkg/compiler/lib/src/native/resolver.dart
@@ -12,6 +12,7 @@ import '../elements/elements.dart'
show
ClassElement,
Element,
+ FieldElement,
LibraryElement,
MemberElement,
MetadataAnnotation,
@@ -70,24 +71,25 @@ class NativeDataResolverImpl implements NativeDataResolver {
element.isConstructor ||
element.isGetter ||
element.isSetter) {
- bool isNative = _processMethodAnnotations(element);
+ MethodElement method = element;
+ bool isNative = _processMethodAnnotations(method);
if (isNative || isJsInterop) {
NativeBehavior behavior = NativeBehavior
- .ofMethodElement(element, _compiler, isJsInterop: isJsInterop);
- _nativeDataBuilder.setNativeMethodBehavior(element, behavior);
+ .ofMethodElement(method, _compiler, isJsInterop: isJsInterop);
+ _nativeDataBuilder.setNativeMethodBehavior(method, behavior);
registry.registerNativeData(behavior);
}
} else if (element.isField) {
- bool isNative = _processFieldAnnotations(element);
+ FieldElement field = element;
+ bool isNative = _processFieldAnnotations(field);
if (isNative || isJsInterop) {
NativeBehavior fieldLoadBehavior = NativeBehavior
- .ofFieldElementLoad(element, _compiler, isJsInterop: isJsInterop);
+ .ofFieldElementLoad(field, _compiler, isJsInterop: isJsInterop);
NativeBehavior fieldStoreBehavior =
- NativeBehavior.ofFieldElementStore(element, _compiler);
- _nativeDataBuilder.setNativeFieldLoadBehavior(
- element, fieldLoadBehavior);
+ NativeBehavior.ofFieldElementStore(field, _compiler);
+ _nativeDataBuilder.setNativeFieldLoadBehavior(field, fieldLoadBehavior);
_nativeDataBuilder.setNativeFieldStoreBehavior(
- element, fieldStoreBehavior);
+ field, fieldStoreBehavior);
// TODO(sra): Process fields for storing separately.
// We have to handle both loading and storing to the field because we
@@ -247,9 +249,10 @@ class NativeAnnotationHandler extends EagerAnnotationHandler<String> {
String apply(
Compiler compiler, Element element, MetadataAnnotation annotation) {
if (element.isClass) {
+ ClassElement cls = element;
String native = getNativeAnnotation(annotation);
if (native != null) {
- _nativeClassDataBuilder.setNativeClassTagInfo(element, native);
+ _nativeClassDataBuilder.setNativeClassTagInfo(cls, native);
return native;
}
}
@@ -280,8 +283,9 @@ void checkJsInteropClassAnnotations(Compiler compiler, LibraryElement library,
}
library.forEachLocalMember((Element element) {
if (element.isClass) {
+ ClassElement cls = element;
if (checkJsInteropAnnotation(element)) {
- nativeClassDataBuilder.markAsJsInteropClass(element);
+ nativeClassDataBuilder.markAsJsInteropClass(cls);
}
}
});
« no previous file with comments | « pkg/compiler/lib/src/kernel/world_builder.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698