struct psi_decl_type;
struct psi_decl_var;
struct psi_layout;
+struct psi_validate_scope;
struct psi_decl_arg {
struct psi_token *token;
void psi_decl_arg_free(struct psi_decl_arg **arg_ptr);
void psi_decl_arg_dump(int fd, struct psi_decl_arg *arg, unsigned level);
-bool psi_decl_arg_validate(struct psi_data *data, struct psi_decl_arg *arg);
-bool psi_decl_arg_validate_typedef(struct psi_data *data, struct psi_decl_arg *def);
+bool psi_decl_arg_validate(struct psi_data *data, struct psi_decl_arg *arg, struct psi_validate_scope *scope);
+bool psi_decl_arg_validate_typedef(struct psi_data *data, struct psi_decl_arg *def, struct psi_validate_scope *scope);
+
+bool psi_decl_arg_is_pointer(struct psi_decl_arg *darg);
size_t psi_decl_arg_align(struct psi_decl_arg *darg, size_t *pos, size_t *len);
size_t psi_decl_arg_get_align(struct psi_decl_arg *darg);
size_t psi_decl_arg_get_size(struct psi_decl_arg *darg);
-struct psi_decl_arg *psi_decl_arg_get_by_name(struct psi_plist *args, const char *name);
+struct psi_decl_arg *psi_decl_arg_get_by_name(struct psi_plist *args, zend_string *name);
struct psi_decl_arg *psi_decl_arg_get_by_var(struct psi_decl_var *var, struct psi_plist *args, struct psi_decl_arg *func);