Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
dart::kernel::FieldHelper Class Reference

#include <kernel_translation_helper.h>

Public Types

enum  Field {
  kStart , kCanonicalNameField , kCanonicalNameGetter , kCanonicalNameSetter ,
  kSourceUriIndex , kPosition , kEndPosition , kFlags ,
  kName , kAnnotations , kType , kInitializer ,
  kEnd
}
 
enum  Flag {
  kFinal = 1 << 0 , kConst = 1 << 1 , kStatic = 1 << 2 , kIsCovariant = 1 << 3 ,
  kIsGenericCovariantImpl = 1 << 4 , kIsLate = 1 << 5 , kExtensionMember = 1 << 6 , kLegacy = 1 << 7 ,
  kInternalImplementation = 1 << 8 , kEnumElement = 1 << 9 , kExtensionTypeMember = 1 << 10
}
 

Public Member Functions

 FieldHelper (KernelReaderHelper *helper)
 
 FieldHelper (KernelReaderHelper *helper, intptr_t offset)
 
void ReadUntilIncluding (Field field)
 
void ReadUntilExcluding (Field field)
 
void SetNext (Field field)
 
void SetJustRead (Field field)
 
bool IsConst ()
 
bool IsFinal ()
 
bool IsStatic ()
 
bool IsCovariant () const
 
bool IsGenericCovariantImpl ()
 
bool IsLate () const
 
bool IsExtensionMember () const
 
bool IsExtensionTypeMember () const
 

Public Attributes

NameIndex canonical_name_field_
 
NameIndex canonical_name_getter_
 
NameIndex canonical_name_setter_
 
TokenPosition position_ = TokenPosition::kNoSource
 
TokenPosition end_position_ = TokenPosition::kNoSource
 
uint32_t flags_ = 0
 
intptr_t source_uri_index_ = 0
 
intptr_t annotation_count_ = 0
 

Detailed Description

Definition at line 471 of file kernel_translation_helper.h.

Member Enumeration Documentation

◆ Field

Enumerator
kStart 
kCanonicalNameField 
kCanonicalNameGetter 
kCanonicalNameSetter 
kSourceUriIndex 
kPosition 
kEndPosition 
kFlags 
kName 
kAnnotations 
kType 
kInitializer 
kEnd 

Definition at line 473 of file kernel_translation_helper.h.

◆ Flag

Enumerator
kFinal 
kConst 
kStatic 
kIsCovariant 
kIsGenericCovariantImpl 
kIsLate 
kExtensionMember 
kLegacy 
kInternalImplementation 
kEnumElement 
kExtensionTypeMember 

Definition at line 489 of file kernel_translation_helper.h.

Constructor & Destructor Documentation

◆ FieldHelper() [1/2]

dart::kernel::FieldHelper::FieldHelper ( KernelReaderHelper helper)
inlineexplicit

Definition at line 503 of file kernel_translation_helper.h.

504 : helper_(helper), next_read_(kStart) {}

◆ FieldHelper() [2/2]

dart::kernel::FieldHelper::FieldHelper ( KernelReaderHelper helper,
intptr_t  offset 
)

Definition at line 1094 of file kernel_translation_helper.cc.

1095 : helper_(helper), next_read_(kStart) {
1096 helper_->SetOffset(offset);
1097}
Point offset

Member Function Documentation

◆ IsConst()

bool dart::kernel::FieldHelper::IsConst ( )
inline

Definition at line 517 of file kernel_translation_helper.h.

517{ return (flags_ & kConst) != 0; }

◆ IsCovariant()

bool dart::kernel::FieldHelper::IsCovariant ( ) const
inline

Definition at line 520 of file kernel_translation_helper.h.

520{ return (flags_ & kIsCovariant) != 0; }

◆ IsExtensionMember()

bool dart::kernel::FieldHelper::IsExtensionMember ( ) const
inline

Definition at line 525 of file kernel_translation_helper.h.

525{ return (flags_ & kExtensionMember) != 0; }

◆ IsExtensionTypeMember()

bool dart::kernel::FieldHelper::IsExtensionTypeMember ( ) const
inline

Definition at line 526 of file kernel_translation_helper.h.

526 {
527 return (flags_ & kExtensionTypeMember) != 0;
528 }

◆ IsFinal()

bool dart::kernel::FieldHelper::IsFinal ( )
inline

Definition at line 518 of file kernel_translation_helper.h.

518{ return (flags_ & kFinal) != 0; }

◆ IsGenericCovariantImpl()

bool dart::kernel::FieldHelper::IsGenericCovariantImpl ( )
inline

Definition at line 521 of file kernel_translation_helper.h.

521 {
522 return (flags_ & kIsGenericCovariantImpl) != 0;
523 }

◆ IsLate()

bool dart::kernel::FieldHelper::IsLate ( ) const
inline

Definition at line 524 of file kernel_translation_helper.h.

524{ return (flags_ & kIsLate) != 0; }

◆ IsStatic()

bool dart::kernel::FieldHelper::IsStatic ( )
inline

Definition at line 519 of file kernel_translation_helper.h.

519{ return (flags_ & kStatic) != 0; }

◆ ReadUntilExcluding()

void dart::kernel::FieldHelper::ReadUntilExcluding ( Field  field)

Definition at line 1099 of file kernel_translation_helper.cc.

1099 {
1100 if (field <= next_read_) return;
1101
1102 // Ordered with fall-through.
1103 switch (next_read_) {
1104 case kStart: {
1105 Tag tag = helper_->ReadTag(); // read tag.
1106 ASSERT(tag == kField);
1107 if (++next_read_ == field) return;
1108 }
1112 helper_->ReadCanonicalNameReference(); // read canonical_name_field.
1113 if (++next_read_ == field) return;
1117 helper_->ReadCanonicalNameReference(); // read canonical_name_getter.
1118 if (++next_read_ == field) return;
1122 helper_->ReadCanonicalNameReference(); // read canonical_name_setter.
1123 if (++next_read_ == field) return;
1125 case kSourceUriIndex:
1126 source_uri_index_ = helper_->ReadUInt(); // read source_uri_index.
1128 if (++next_read_ == field) return;
1130 case kPosition:
1131 position_ = helper_->ReadPosition(); // read position.
1132 if (++next_read_ == field) return;
1134 case kEndPosition:
1135 end_position_ = helper_->ReadPosition(); // read end position.
1136 if (++next_read_ == field) return;
1138 case kFlags:
1139 flags_ = helper_->ReadUInt();
1140 if (++next_read_ == field) return;
1142 case kName:
1143 helper_->SkipName(); // read name.
1144 if (++next_read_ == field) return;
1146 case kAnnotations: {
1147 annotation_count_ = helper_->ReadListLength(); // read list length.
1148 for (intptr_t i = 0; i < annotation_count_; ++i) {
1149 helper_->SkipExpression(); // read ith expression.
1150 }
1151 if (++next_read_ == field) return;
1152 }
1154 case kType:
1155 helper_->SkipDartType(); // read type.
1156 if (++next_read_ == field) return;
1158 case kInitializer:
1159 if (helper_->ReadTag() == kSomething) {
1160 helper_->SkipExpression(); // read initializer.
1161 }
1162 if (++next_read_ == field) return;
1164 case kEnd:
1165 return;
1166 }
1167}
Tag ReadTag(uint8_t *payload=nullptr)
virtual void set_current_script_id(intptr_t id)
#define ASSERT(E)
#define FALL_THROUGH
Definition globals.h:15

◆ ReadUntilIncluding()

void dart::kernel::FieldHelper::ReadUntilIncluding ( Field  field)
inline

Definition at line 508 of file kernel_translation_helper.h.

508 {
509 ReadUntilExcluding(static_cast<Field>(static_cast<int>(field) + 1));
510 }

◆ SetJustRead()

void dart::kernel::FieldHelper::SetJustRead ( Field  field)
inline

Definition at line 515 of file kernel_translation_helper.h.

515{ next_read_ = field + 1; }

◆ SetNext()

void dart::kernel::FieldHelper::SetNext ( Field  field)
inline

Definition at line 514 of file kernel_translation_helper.h.

514{ next_read_ = field; }

Member Data Documentation

◆ annotation_count_

intptr_t dart::kernel::FieldHelper::annotation_count_ = 0

Definition at line 537 of file kernel_translation_helper.h.

◆ canonical_name_field_

NameIndex dart::kernel::FieldHelper::canonical_name_field_

Definition at line 530 of file kernel_translation_helper.h.

◆ canonical_name_getter_

NameIndex dart::kernel::FieldHelper::canonical_name_getter_

Definition at line 531 of file kernel_translation_helper.h.

◆ canonical_name_setter_

NameIndex dart::kernel::FieldHelper::canonical_name_setter_

Definition at line 532 of file kernel_translation_helper.h.

◆ end_position_

TokenPosition dart::kernel::FieldHelper::end_position_ = TokenPosition::kNoSource

Definition at line 534 of file kernel_translation_helper.h.

◆ flags_

uint32_t dart::kernel::FieldHelper::flags_ = 0

Definition at line 535 of file kernel_translation_helper.h.

◆ position_

TokenPosition dart::kernel::FieldHelper::position_ = TokenPosition::kNoSource

Definition at line 533 of file kernel_translation_helper.h.

◆ source_uri_index_

intptr_t dart::kernel::FieldHelper::source_uri_index_ = 0

Definition at line 536 of file kernel_translation_helper.h.


The documentation for this class was generated from the following files: