bool r_any_resolved;
bool record_target;
bool r_self_referencing;
- VariableDeclaration *r_assignment_target;
+ Assignment::Target r_assignment_target;
public:
VariableResolver();
private:
virtual void enter(Block &);
- void visit_and_replace(RefPtr<Expression> &);
+ virtual void visit(RefPtr<Expression> &);
+ void check_assignment_target(Statement *);
virtual void visit(VariableReference &);
virtual void visit(InterfaceBlockReference &);
+ void add_to_chain(Assignment::Target::ChainType, unsigned);
virtual void visit(MemberAccess &);
- virtual void visit(UnaryExpression &);
+ virtual void visit(Swizzle &);
virtual void visit(BinaryExpression &);
virtual void visit(Assignment &);
- virtual void visit(FunctionCall &);
virtual void visit(VariableDeclaration &);
virtual void visit(InterfaceBlock &);
};
virtual void visit(VariableReference &);
virtual void visit(InterfaceBlockReference &);
virtual void visit(MemberAccess &);
+ virtual void visit(Swizzle &);
virtual void visit(UnaryExpression &);
void visit(BinaryExpression &, bool);
virtual void visit(BinaryExpression &);