X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Fdecl.h;h=c859daf2b1d48a4ee69414fefd94cb14cc3e24d1;hb=698841dfdd4d70d24e0b7af25ac7100bc2cb26a4;hp=0ef42bda287b7a616bd8df3a5c56e8539eb31708;hpb=440ff658995f1378fd74c0101ff6c2b4951ffdf9;p=m6w6%2Fext-psi diff --git a/src/types/decl.h b/src/types/decl.h index 0ef42bd..c859daf 100644 --- a/src/types/decl.h +++ b/src/types/decl.h @@ -35,21 +35,22 @@ struct psi_decl { struct psi_decl_abi *abi; struct psi_decl_arg *func; struct psi_plist *args; + zend_string *redir; void *sym; void *info; + void *type; unsigned varargs:1; + unsigned extvar:1; }; struct psi_decl *psi_decl_init(struct psi_decl_arg *func, struct psi_plist *args); void psi_decl_free(struct psi_decl **d_ptr); -void psi_decl_dump(int fd, struct psi_decl *decl); +void psi_decl_dump(struct psi_dump *dump, struct psi_decl *decl); -bool psi_decl_validate(struct psi_data *data, struct psi_decl *decl, void *dl, struct psi_validate_stack *type_stack); -bool psi_decl_validate_nodl(struct psi_data *data, struct psi_decl *decl, struct psi_validate_stack *type_stack); +bool psi_decl_validate(struct psi_data *data, struct psi_decl *decl, struct psi_validate_scope *scope); +bool psi_decl_validate_nodl(struct psi_data *data, struct psi_decl *decl, struct psi_validate_scope *scope); -static inline struct psi_decl_arg *psi_decl_get_arg(struct psi_decl *decl, struct psi_decl_var *var) { - return psi_decl_arg_get_by_var(var, decl->args, decl->func); -} +struct psi_decl_arg *psi_decl_get_arg(struct psi_decl *decl, struct psi_decl_var *var); bool psi_decl_is_blacklisted(const char *name);