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

Unified Diff: pkg/compiler/lib/src/kernel/element_map.dart

Issue 2861733002: Handle const Symbol(...) in kernel_impact (Closed)
Patch Set: Created 3 years, 8 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/kernel/element_map.dart
diff --git a/pkg/compiler/lib/src/kernel/element_map.dart b/pkg/compiler/lib/src/kernel/element_map.dart
index 22256550ac69816cf7c710e29b5f85cc8346951e..d7aa2102f268a7769c3cc13ba563686b508c8b59 100644
--- a/pkg/compiler/lib/src/kernel/element_map.dart
+++ b/pkg/compiler/lib/src/kernel/element_map.dart
@@ -77,8 +77,7 @@ class KernelToElementMap extends KernelElementAdapterMixin {
_elementEnvironment = new KernelElementEnvironment(this);
_commonElements = new CommonElements(_elementEnvironment);
_constantEnvironment = new KernelConstantEnvironment(this);
- _nativeBehaviorBuilder =
- new KernelBehaviorBuilder(_commonElements, _constantEnvironment);
+ _nativeBehaviorBuilder = new KernelBehaviorBuilder(_commonElements);
_types = new _KernelDartTypes(this);
_typeConverter = new DartTypeConverter(this);
}
@@ -124,6 +123,11 @@ class KernelToElementMap extends KernelElementAdapterMixin {
@override
native.BehaviorBuilder get nativeBehaviorBuilder => _nativeBehaviorBuilder;
+ @override
+ ConstantValue computeConstantValue(ConstantExpression constant) {
+ return _constantEnvironment.getConstantValue(constant);
+ }
+
LibraryEntity lookupLibrary(Uri uri) {
_KLibraryEnv libraryEnv = _env.lookupLibrary(uri);
if (libraryEnv == null) return null;
@@ -194,7 +198,7 @@ class KernelToElementMap extends KernelElementAdapterMixin {
});
}
- Iterable<ConstantExpression> _getClassMetadata(KClass cls) {
+ Iterable<ConstantValue> _getClassMetadata(KClass cls) {
return _classEnvs[cls.classIndex].getMetadata(this);
}
@@ -732,7 +736,7 @@ class _KClassEnv {
Map<String, ir.Member> _memberMap;
Map<String, ir.Member> _setterMap;
- Iterable<ConstantExpression> _metadata;
+ Iterable<ConstantValue> _metadata;
_KClassEnv(this.cls)
// TODO(johnniwinther): Change this to use a property on [cls] when such
@@ -801,7 +805,7 @@ class _KClassEnv {
}
}
- Iterable<ConstantExpression> getMetadata(KernelToElementMap elementMap) {
+ Iterable<ConstantValue> getMetadata(KernelToElementMap elementMap) {
if (_metadata == null) {
_metadata = elementMap.getMetadata(cls.annotations);
}
@@ -811,7 +815,7 @@ class _KClassEnv {
class _MemberData {
final ir.Member node;
- Iterable<ConstantExpression> _metadata;
+ Iterable<ConstantValue> _metadata;
_MemberData(this.node);
@@ -819,7 +823,7 @@ class _MemberData {
return buildKernelImpact(node, elementMap);
}
- Iterable<ConstantExpression> getMetadata(KernelToElementMap elementMap) {
+ Iterable<ConstantValue> getMetadata(KernelToElementMap elementMap) {
return _metadata ??= elementMap.getMetadata(node.annotations);
}
}
@@ -1049,12 +1053,8 @@ class KernelElementEnvironment implements ElementEnvironment {
@override
Iterable<ConstantValue> getMemberMetadata(KMember member) {
- List<ConstantValue> values = <ConstantValue>[];
_MemberData memberData = elementMap._memberList[member.memberIndex];
- for (ConstantExpression constant in memberData.getMetadata(elementMap)) {
- values.add(elementMap.constantEnvironment.getConstantValue(constant));
- }
- return values;
+ return memberData.getMetadata(elementMap);
}
}
@@ -1136,12 +1136,8 @@ class DartTypeConverter extends ir.DartTypeVisitor<DartType> {
/// [native.BehaviorBuilder] for kernel based elements.
class KernelBehaviorBuilder extends native.BehaviorBuilder {
final CommonElements commonElements;
- final ConstantEnvironment constants;
- KernelBehaviorBuilder(
- this.commonElements,
- this.constants,
- );
+ KernelBehaviorBuilder(this.commonElements);
@override
bool get trustJSInteropTypeAnnotations {
« no previous file with comments | « pkg/compiler/lib/src/kernel/element_adapter.dart ('k') | pkg/compiler/lib/src/kernel/native_basic_data.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698