Lines Matching refs:typeinfo
486 : typeinfo(get_type_info(type_info)), cpptype(&type_info) { }
488 type_caster_generic(const type_info *typeinfo)
489 : typeinfo(typeinfo), cpptype(typeinfo ? typeinfo->cpptype : nullptr) { }
573 auto *type = v_h.type ? v_h.type : typeinfo;
589 for (auto &cast : typeinfo->implicit_casts) {
599 for (auto &converter : *typeinfo->direct_conversions) {
614 /// Try to load with foreign typeinfo, if available. Used when there is no
615 /// native typeinfo, or when the native one wasn't able to produce a value.
641 if (!typeinfo) return try_load_foreign_module_local(src);
656 if (srctype == typeinfo->type) {
661 else if (PyType_IsSubtype(srctype, typeinfo->type)) {
663 bool no_cpp_mi = typeinfo->simple_type;
671 if (bases.size() == 1 && (no_cpp_mi || bases.front()->type == typeinfo->type)) {
680 if (no_cpp_mi ? PyType_IsSubtype(base->type, typeinfo->type) : base->type == typeinfo->type) {
696 for (auto &converter : typeinfo->implicit_conversions) {
697 auto temp = reinterpret_steal<object>(converter(src.ptr(), typeinfo->type));
707 // Failed to match local typeinfo. Try again with global.
708 if (typeinfo->module_local) {
709 if (auto gtype = get_global_type_info(*typeinfo->cpptype)) {
710 typeinfo = gtype;
715 // Global typeinfo has precedence over foreign module_local
736 const type_info *typeinfo = nullptr;
1445 using base::typeinfo;
1472 if (typeinfo->default_holder)
1496 for (auto &cast : typeinfo->implicit_casts) {