[vm,dyn_modules] Mark extension type members appropriately.
TEST=pkg/vm_service/test/step_through_extension_type_method_call_test Cq-Include-Trybots: luci.dart.try:vm-dyn-linux-debug-x64-try,vm-dyn-mac-debug-arm64-try Change-Id: I3bf331e175847280964fd42eb027e9f812598bf2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/464705 Auto-Submit: Tess Strickland <sstrickl@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
committed by
Commit Queue
parent
c65ce1f82e
commit
7af4d14267
@@ -524,7 +524,7 @@ type FieldDeclaration {
|
||||
hasGetter, hasSetter,
|
||||
hasInitializer, hasNontrivialInitializer, hasInitializerCode,
|
||||
hasSourcePositions, hasAnnotations, hasPragma,
|
||||
hasCustomScript);
|
||||
hasCustomScript, isExtensionTypeMember);
|
||||
PackedObject name;
|
||||
PackedObject type;
|
||||
|
||||
@@ -557,7 +557,7 @@ type FunctionDeclaration {
|
||||
isAsync, isAsyncStar, isSyncStar,
|
||||
isNoSuchMethodForwarder, isExternal, isNative,
|
||||
hasSourcePositions, hasAnnotations, hasPragma,
|
||||
hasCustomScript);
|
||||
hasCustomScript, isExtensionTypeMember);
|
||||
|
||||
PackedObject name;
|
||||
|
||||
|
||||
@@ -502,6 +502,9 @@ class BytecodeGenerator extends RecursiveVisitor {
|
||||
if (field.isExtensionMember) {
|
||||
flags |= FieldDeclaration.isExtensionMemberFlag;
|
||||
}
|
||||
if (field.isExtensionTypeMember) {
|
||||
flags |= FieldDeclaration.isExtensionTypeMemberFlag;
|
||||
}
|
||||
// In NNBD libraries, static fields with initializers are implicitly late.
|
||||
if (field.isLate || (field.isStatic && field.initializer != null)) {
|
||||
flags |= FieldDeclaration.isLateFlag;
|
||||
@@ -569,6 +572,9 @@ class BytecodeGenerator extends RecursiveVisitor {
|
||||
if (member.isExtensionMember) {
|
||||
flags |= FunctionDeclaration.isExtensionMemberFlag;
|
||||
}
|
||||
if (member.isExtensionTypeMember) {
|
||||
flags |= FunctionDeclaration.isExtensionTypeMemberFlag;
|
||||
}
|
||||
|
||||
FunctionNode function = member.function!;
|
||||
if (function.requiredParameterCount !=
|
||||
|
||||
@@ -360,6 +360,7 @@ class FieldDeclaration {
|
||||
static const hasAnnotationsFlag = 1 << 14;
|
||||
static const hasPragmaFlag = 1 << 15;
|
||||
static const hasCustomScriptFlag = 1 << 16;
|
||||
static const isExtensionTypeMemberFlag = 1 << 17;
|
||||
|
||||
final int flags;
|
||||
final ObjectHandle name;
|
||||
@@ -475,6 +476,9 @@ class FieldDeclaration {
|
||||
if ((flags & isExtensionMemberFlag) != 0) {
|
||||
sb.write(', extension-member');
|
||||
}
|
||||
if ((flags & isExtensionTypeMemberFlag) != 0) {
|
||||
sb.write(', extension-type-member');
|
||||
}
|
||||
if ((flags & hasPragmaFlag) != 0) {
|
||||
sb.write(', has-pragma');
|
||||
}
|
||||
@@ -526,6 +530,7 @@ class FunctionDeclaration {
|
||||
static const hasAnnotationsFlag = 1 << 21;
|
||||
static const hasPragmaFlag = 1 << 22;
|
||||
static const hasCustomScriptFlag = 1 << 23;
|
||||
static const isExtensionTypeMemberFlag = 1 << 24;
|
||||
|
||||
final int flags;
|
||||
final ObjectHandle name;
|
||||
@@ -678,6 +683,9 @@ class FunctionDeclaration {
|
||||
if ((flags & isExtensionMemberFlag) != 0) {
|
||||
sb.write(', extension-member');
|
||||
}
|
||||
if ((flags & isExtensionTypeMemberFlag) != 0) {
|
||||
sb.write(', extension-type-member');
|
||||
}
|
||||
if ((flags & hasOptionalPositionalParamsFlag) != 0) {
|
||||
sb.write(', has-optional-positional-params');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user