24 {
25 switch (this->
kind()) {
26 case Symbol::Kind::kFunctionDeclaration:
27 return std::make_unique<FunctionReference>(
28 context,
pos, &this->as<FunctionDeclaration>());
29
30 case Symbol::Kind::kVariable: {
31 const Variable* var = &this->as<Variable>();
32
34 }
35 case Symbol::Kind::kField: {
36 const FieldSymbol* field = &this->as<FieldSymbol>();
38 pos, &field->owner(), VariableReference::RefKind::kRead);
42 field->fieldIndex(),
43 FieldAccess::OwnerKind::kAnonymousInterfaceBlock);
44 }
45 case Symbol::Kind::kType:
47
48 default:
50 return nullptr;
51 }
52}
#define SkDEBUGFAILF(fmt,...)
static std::unique_ptr< Expression > Make(const Context &context, Position pos, std::unique_ptr< Expression > base, int fieldIndex, OwnerKind ownerKind=OwnerKind::kDefault)
static std::unique_ptr< TypeReference > Convert(const Context &context, Position pos, const Type *type)
static std::unique_ptr< Expression > Make(Position pos, const Variable *variable, RefKind refKind=RefKind::kRead)