30class GlobalVarDeclaration;
60 , fBuiltin(builtin) {}
85 std::string_view baseName,
90 return fModifierFlags;
96 return fModifiersPosition;
119 fDeclaringElement =
nullptr;
140 IRNode* fDeclaringElement =
nullptr;
170 return fInterfaceBlockElement;
179 fInterfaceBlockElement = elem;
184 fInterfaceBlockElement =
nullptr;
192 std::string fMangledName;
const Layout & layout() const override
~ExtendedVariable() override
void detachDeadInterfaceBlock() override
ExtendedVariable(Position pos, Position modifiersPosition, const Layout &layout, ModifierFlags flags, std::string_view name, const Type *type, bool builtin, Storage storage, std::string mangledName)
std::string_view mangledName() const override
InterfaceBlock * interfaceBlock() const override
void setInterfaceBlock(InterfaceBlock *elem) override
std::string paddedDescription() const
std::string_view name() const
Symbol(Position pos, Kind kind, std::string_view name, const Type *type=nullptr)
const Type & type() const
std::string displayName() const
Variable(Position pos, Position modifiersPosition, ModifierFlags modifierFlags, std::string_view name, const Type *type, bool builtin, Storage storage)
void setVarDeclaration(VarDeclaration *declaration)
virtual std::string_view mangledName() const
static std::unique_ptr< Variable > Make(Position pos, Position modifiersPosition, const Layout &layout, ModifierFlags flags, const Type *type, std::string_view name, std::string mangledName, bool builtin, Storage storage)
void setGlobalVarDeclaration(GlobalVarDeclaration *global)
void detachDeadVarDeclaration()
std::string description() const override
static constexpr Kind kIRNodeKind
GlobalVarDeclaration * globalVarDeclaration() const
virtual void setInterfaceBlock(InterfaceBlock *)
virtual InterfaceBlock * interfaceBlock() const
Position modifiersPosition() const
const Expression * initialValue() const
static ScratchVariable MakeScratchVariable(const Context &context, Mangler &mangler, std::string_view baseName, const Type *type, SymbolTable *symbolTable, std::unique_ptr< Expression > initialValue)
VarDeclaration * varDeclaration() const
static std::unique_ptr< Variable > Convert(const Context &context, Position pos, Position modifiersPos, const Layout &layout, ModifierFlags flags, const Type *type, Position namePos, std::string_view name, Storage storage)
virtual void detachDeadInterfaceBlock()
ModifierFlags modifierFlags() const
virtual const Layout & layout() const
FlutterSemanticsFlag flags
std::string paddedDescription() const
const Variable * fVarSymbol
std::unique_ptr< Statement > fVarDecl