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

Unified Diff: pkg/compiler/lib/src/js_backend/namer.dart

Issue 2929143002: Handle instance fields in compile_from_dill_test (Closed)
Patch Set: Cleanup Created 3 years, 6 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
Index: pkg/compiler/lib/src/js_backend/namer.dart
diff --git a/pkg/compiler/lib/src/js_backend/namer.dart b/pkg/compiler/lib/src/js_backend/namer.dart
index 528d4e2aa4db7245d8edc08b757668518afbf1da..911aec7bbbbdb57649d09d135ca8e7a455209095 100644
--- a/pkg/compiler/lib/src/js_backend/namer.dart
+++ b/pkg/compiler/lib/src/js_backend/namer.dart
@@ -868,7 +868,7 @@ class Namer {
* Returns the disambiguated name for the given field, used for constructing
* the getter and setter names.
*/
- jsAst.Name fieldAccessorName(FieldElement element) {
+ jsAst.Name fieldAccessorName(FieldEntity element) {
return element.isInstanceMember
? _disambiguateMember(element.memberName)
: _disambiguateGlobalMember(element);
@@ -878,7 +878,7 @@ class Namer {
* Returns name of the JavaScript property used to store a static or instance
* field.
*/
- jsAst.Name fieldPropertyName(FieldElement element) {
+ jsAst.Name fieldPropertyName(FieldEntity element) {
return element.isInstanceMember
? instanceFieldPropertyName(element)
: _disambiguateGlobalMember(element);
@@ -911,8 +911,8 @@ class Namer {
/**
* Returns the JavaScript property name used to store an instance field.
*/
- jsAst.Name instanceFieldPropertyName(FieldElement element) {
- ClassElement enclosingClass = element.enclosingClass;
+ jsAst.Name instanceFieldPropertyName(FieldEntity element) {
+ ClassEntity enclosingClass = element.enclosingClass;
if (_nativeData.hasFixedBackendName(element)) {
return new StringBackedName(_nativeData.getFixedBackendName(element));
@@ -925,10 +925,12 @@ class Namer {
// However, as boxes are not really instances of classes, the usual naming
// scheme that tries to avoid name clashes with super classes does not
// apply. So we can directly grab a name.
- Entity asEntity = element;
- if (asEntity is JSEntity) {
+ if (element is JSEntity) {
+ var jsEntity = element;
return _disambiguateInternalMember(
- element, () => asEntity.declaredEntity.name);
+ jsEntity,
+ // ignore: UNDEFINED_GETTER
+ () => jsEntity.declaredEntity.name);
}
// If the name of the field might clash with another field,
@@ -951,18 +953,23 @@ class Namer {
return _disambiguateMember(new Name(element.name, element.library));
}
- bool _isShadowingSuperField(Element element) {
- return element.enclosingClass.hasFieldShadowedBy(element);
+ bool _isShadowingSuperField(FieldEntity element) {
+ ClassEntity cls = element.enclosingClass;
+ if (cls is ClassElement) {
+ return cls.hasFieldShadowedBy(element);
+ }
+ // TODO(johnniwinther): Support class entities.
+ return false;
}
/// True if [class_] is a non-native class that inherits from a native class.
- bool _isUserClassExtendingNative(ClassElement class_) {
+ bool _isUserClassExtendingNative(ClassEntity class_) {
return !_nativeData.isNativeClass(class_) &&
- _nativeData.isNativeOrExtendsNative(class_.superclass);
+ _nativeData.isNativeOrExtendsNative(class_);
}
/// Annotated name for the setter of [element].
- jsAst.Name setterForElement(MemberElement element) {
+ jsAst.Name setterForMember(MemberEntity element) {
// We dynamically create setters from the field-name. The setter name must
// therefore be derived from the instance field-name.
jsAst.Name name = _disambiguateMember(element.memberName);
« no previous file with comments | « pkg/compiler/lib/src/elements/elements.dart ('k') | pkg/compiler/lib/src/js_emitter/full_emitter/class_emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698