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

Unified Diff: pkg/kernel/lib/binary/limited_ast_to_binary.dart

Issue 2906693002: Serialize also canonical names of 'interfaceTargetReference'. (Closed)
Patch Set: Keep interfaceTargetReference recording in ReferencesStringIndexer. Created 3 years, 7 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/front_end/test/incremental_kernel_generator_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/kernel/lib/binary/limited_ast_to_binary.dart
diff --git a/pkg/kernel/lib/binary/limited_ast_to_binary.dart b/pkg/kernel/lib/binary/limited_ast_to_binary.dart
index ba17cab47d5e21535ae917c2c74f2bbe67aeb952..84eca8bbc642bb46ef295f898002b3956153d748 100644
--- a/pkg/kernel/lib/binary/limited_ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/limited_ast_to_binary.dart
@@ -57,14 +57,52 @@ class LimitedBinaryPrinter extends BinaryPrinter {
class ReferencesStringIndexer extends StringIndexer {
final List<CanonicalName> referencedNames = <CanonicalName>[];
+ @override
defaultMemberReference(Member node) {
_handleReferencedName(node.canonicalName);
}
+ @override
visitClassReference(Class node) {
_handleReferencedName(node.canonicalName);
}
+ @override
+ visitMethodInvocation(MethodInvocation node) {
+ _handleReferencedName(node.interfaceTargetReference?.canonicalName);
+ return super.visitMethodInvocation(node);
+ }
+
+ @override
+ visitPropertyGet(PropertyGet node) {
+ _handleReferencedName(node.interfaceTargetReference?.canonicalName);
+ return super.visitPropertyGet(node);
+ }
+
+ @override
+ visitPropertySet(PropertySet node) {
+ _handleReferencedName(node.interfaceTargetReference?.canonicalName);
+ return super.visitPropertySet(node);
+ }
+
+ @override
+ visitSuperMethodInvocation(SuperMethodInvocation node) {
+ _handleReferencedName(node.interfaceTargetReference?.canonicalName);
+ return super.visitSuperMethodInvocation(node);
+ }
+
+ @override
+ visitSuperPropertyGet(SuperPropertyGet node) {
+ _handleReferencedName(node.interfaceTargetReference?.canonicalName);
+ return super.visitSuperPropertyGet(node);
+ }
+
+ @override
+ visitSuperPropertySet(SuperPropertySet node) {
+ _handleReferencedName(node.interfaceTargetReference?.canonicalName);
+ return super.visitSuperPropertySet(node);
+ }
+
void _handleReferencedName(CanonicalName name) {
if (name == null || name.parent == null) return;
_handleReferencedName(name.parent);
« no previous file with comments | « pkg/front_end/test/incremental_kernel_generator_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698