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

#include <kernel_translation_helper.h>

Public Types

enum  Field {
  kFlags , kLanguageVersion , kCanonicalName , kName ,
  kSourceUriIndex , kProblemsAsJson , kAnnotations , kDependencies
}
 
enum  Flag {
  kSynthetic = 1 << 0 , kIsLegacy = 1 << 1 , kNonNullableByDefaultCompiledModeBit1 = 1 << 2 , kNonNullableByDefaultCompiledModeBit2 = 1 << 3 ,
  kUnsupported = 1 << 4
}
 

Public Member Functions

 LibraryHelper (KernelReaderHelper *helper)
 
void ReadUntilIncluding (Field field)
 
void ReadUntilExcluding (Field field)
 
void SetNext (Field field)
 
void SetJustRead (Field field)
 
bool IsSynthetic () const
 
bool IsNonNullableByDefault () const
 
NNBDCompiledMode GetNonNullableByDefaultCompiledMode () const
 

Public Attributes

uint8_t flags_ = 0
 
NameIndex canonical_name_
 
StringIndex name_index_
 
intptr_t source_uri_index_ = 0
 

Detailed Description

Definition at line 823 of file kernel_translation_helper.h.

Member Enumeration Documentation

◆ Field

Enumerator
kFlags 
kLanguageVersion 
kCanonicalName 
kName 
kSourceUriIndex 
kProblemsAsJson 
kAnnotations 
kDependencies 

Definition at line 825 of file kernel_translation_helper.h.

825 {
826 kFlags,
827 kLanguageVersion /* from binary version 27 */,
829 kName,
834 // There are other fields in a library:
835 // * kAdditionalExports
836 // * kParts
837 // * kTypedefs
838 // * kClasses
839 // * kExtensions
840 // * kExtensionTypeDeclarations
841 // * kToplevelField
842 // * kToplevelProcedures
843 // * kSourceReferences
844 // * kLibraryIndex
845 // but we never read them via this helper and it makes extending the format
846 // harder to keep the code around.
847 };

◆ Flag

Enumerator
kSynthetic 
kIsLegacy 
kNonNullableByDefaultCompiledModeBit1 
kNonNullableByDefaultCompiledModeBit2 
kUnsupported 

Definition at line 849 of file kernel_translation_helper.h.

Constructor & Destructor Documentation

◆ LibraryHelper()

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

Definition at line 857 of file kernel_translation_helper.h.

858 : helper_(helper), next_read_(kFlags) {}

Member Function Documentation

◆ GetNonNullableByDefaultCompiledMode()

NNBDCompiledMode dart::kernel::LibraryHelper::GetNonNullableByDefaultCompiledMode ( ) const
inline

Definition at line 871 of file kernel_translation_helper.h.

871 {
874 if (!bit1 && !bit2) return NNBDCompiledMode::kStrong;
875 if (bit1 && !bit2) return NNBDCompiledMode::kWeak;
876 if (bit1 && bit2) return NNBDCompiledMode::kAgnostic;
877 if (!bit1 && bit2) return NNBDCompiledMode::kInvalid;
878 UNREACHABLE();
879 }
#define UNREACHABLE()
Definition assert.h:248

◆ IsNonNullableByDefault()

bool dart::kernel::LibraryHelper::IsNonNullableByDefault ( ) const
inline

Definition at line 870 of file kernel_translation_helper.h.

870{ return (flags_ & kIsLegacy) == 0; }

◆ IsSynthetic()

bool dart::kernel::LibraryHelper::IsSynthetic ( ) const
inline

Definition at line 869 of file kernel_translation_helper.h.

869{ return (flags_ & kSynthetic) != 0; }

◆ ReadUntilExcluding()

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

Definition at line 1433 of file kernel_translation_helper.cc.

1433 {
1434 if (field <= next_read_) return;
1435
1436 // Ordered with fall-through.
1437 switch (next_read_) {
1438 // Note that this (up to canonical name) needs to be kept in sync with
1439 // "library_canonical_name" (currently in "kernel_loader.h").
1440 case kFlags: {
1441 flags_ = helper_->ReadFlags();
1442 if (++next_read_ == field) return;
1444 }
1445 case kLanguageVersion: {
1446 helper_->ReadUInt(); // Read major language version.
1447 helper_->ReadUInt(); // Read minor language version.
1448 if (++next_read_ == field) return;
1450 }
1451 case kCanonicalName:
1453 helper_->ReadCanonicalNameReference(); // read canonical_name.
1454 if (++next_read_ == field) return;
1456 case kName:
1457 name_index_ = helper_->ReadStringReference(); // read name index.
1458 if (++next_read_ == field) return;
1460 case kSourceUriIndex:
1461 source_uri_index_ = helper_->ReadUInt(); // read source_uri_index.
1463 if (++next_read_ == field) return;
1465 case kProblemsAsJson: {
1466 intptr_t length = helper_->ReadUInt(); // read length of table.
1467 for (intptr_t i = 0; i < length; ++i) {
1468 helper_->SkipBytes(helper_->ReadUInt()); // read strings.
1469 }
1470 if (++next_read_ == field) return;
1471 }
1473 case kAnnotations:
1474 helper_->SkipListOfExpressions(); // read annotations.
1475 if (++next_read_ == field) return;
1477 case kDependencies: {
1478 intptr_t dependency_count = helper_->ReadUInt(); // read list length.
1479 for (intptr_t i = 0; i < dependency_count; ++i) {
1480 helper_->SkipLibraryDependency();
1481 }
1482 if (++next_read_ == field) return;
1483 }
1484 return;
1485 }
1486}
virtual void set_current_script_id(intptr_t id)
size_t length
#define FALL_THROUGH
Definition globals.h:15

◆ ReadUntilIncluding()

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

Definition at line 860 of file kernel_translation_helper.h.

860 {
861 ReadUntilExcluding(static_cast<Field>(static_cast<int>(field) + 1));
862 }

◆ SetJustRead()

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

Definition at line 867 of file kernel_translation_helper.h.

867{ next_read_ = field + 1; }

◆ SetNext()

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

Definition at line 866 of file kernel_translation_helper.h.

866{ next_read_ = field; }

Member Data Documentation

◆ canonical_name_

NameIndex dart::kernel::LibraryHelper::canonical_name_

Definition at line 882 of file kernel_translation_helper.h.

◆ flags_

uint8_t dart::kernel::LibraryHelper::flags_ = 0

Definition at line 881 of file kernel_translation_helper.h.

◆ name_index_

StringIndex dart::kernel::LibraryHelper::name_index_

Definition at line 883 of file kernel_translation_helper.h.

◆ source_uri_index_

intptr_t dart::kernel::LibraryHelper::source_uri_index_ = 0

Definition at line 884 of file kernel_translation_helper.h.


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