--- parser3/src/classes/reflection.C 2025/10/05 19:41:27 1.100 +++ parser3/src/classes/reflection.C 2026/04/24 18:30:15 1.102 @@ -11,7 +11,7 @@ #include "pa_varray.h" #include "pa_vobject.h" -volatile const char * IDENT_REFLECTION_C="$Id: reflection.C,v 1.100 2025/10/05 19:41:27 moko Exp $"; +volatile const char * IDENT_REFLECTION_C="$Id: reflection.C,v 1.102 2026/04/24 18:30:15 moko Exp $"; static const String class_type_methoded("methoded"); @@ -126,7 +126,7 @@ static void _create(Request& r, MethodPa static void _classes(Request& r, MethodParams&) { VHash& result=*new VHash; - for(HashString::Iterator i(r.classes()); i; i.next()){ + for(OrderedHashString::Iterator i(r.classes()); i; i.next()){ result.hash().put(i.key(), i.value()->get_methods().count()>0 ? new VString(class_type_methoded) : VVoid::get() ); } r.write(result); @@ -536,6 +536,8 @@ static void _override(Request& r, Method const Method* method=j ? j->method : 0; if(!method) throw Exception(PARSER_RUNTIME, 0, "param must be method junction"); + if(method->native_code) + throw Exception(PARSER_RUNTIME, 0, "param must not be native method"); const String *name=method->name; Value* vtarget=0;