aa8145a03d
Currently we only annotate those call-sites that would result in generic covariant checks performed on the callee side. Bug: https://github.com/dart-lang/sdk/issues/31798 Change-Id: Ifcf60032036575f615015d716276484a7c1236b3 Reviewed-on: https://dart-review.googlesource.com/69580 Commit-Queue: Vyacheslav Egorov <vegorov@google.com> Reviewed-by: Kevin Millikin <kmillikin@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>
43 lines
1.3 KiB
Dart
43 lines
1.3 KiB
Dart
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
library vm.metadata.call_site_attributes;
|
|
|
|
import 'package:kernel/ast.dart';
|
|
|
|
/// Metadata for annotating call sites with various attributes.
|
|
class CallSiteAttributesMetadata {
|
|
final DartType receiverType;
|
|
|
|
const CallSiteAttributesMetadata({this.receiverType});
|
|
|
|
@override
|
|
String toString() => "receiverType:$receiverType";
|
|
}
|
|
|
|
/// Repository for [CallSiteAttributesMetadata].
|
|
class CallSiteAttributesMetadataRepository
|
|
extends MetadataRepository<CallSiteAttributesMetadata> {
|
|
static final repositoryTag = 'vm.call-site-attributes.metadata';
|
|
|
|
@override
|
|
final String tag = repositoryTag;
|
|
|
|
@override
|
|
final Map<TreeNode, CallSiteAttributesMetadata> mapping =
|
|
<TreeNode, CallSiteAttributesMetadata>{};
|
|
|
|
@override
|
|
void writeToBinary(
|
|
CallSiteAttributesMetadata metadata, Node node, BinarySink sink) {
|
|
sink.writeDartType(metadata.receiverType);
|
|
}
|
|
|
|
@override
|
|
CallSiteAttributesMetadata readFromBinary(Node node, BinarySource source) {
|
|
final type = source.readDartType();
|
|
return new CallSiteAttributesMetadata(receiverType: type);
|
|
}
|
|
}
|