|
@@ -1,25 +1,24 @@
|
|
|
open Type
|
|
|
|
|
|
-let get_instance_overloads c cf =
|
|
|
+let get_instance_overloads c name =
|
|
|
let acc = DynArray.create () in
|
|
|
- let rec loop c cf =
|
|
|
+ let rec loop c =
|
|
|
ignore(c.cl_build());
|
|
|
- List.iter (DynArray.add acc) (cf :: cf.cf_overloads);
|
|
|
- let maybe_recurse c =
|
|
|
- try
|
|
|
- loop c (PMap.find cf.cf_name c.cl_fields)
|
|
|
- with Not_found ->
|
|
|
- ()
|
|
|
- in
|
|
|
+ begin try
|
|
|
+ let cf = PMap.find name c.cl_fields in
|
|
|
+ List.iter (DynArray.add acc) (cf :: cf.cf_overloads);
|
|
|
+ with Not_found ->
|
|
|
+ ()
|
|
|
+ end;
|
|
|
if has_class_flag c CInterface then
|
|
|
List.iter (fun (c,_) ->
|
|
|
- maybe_recurse c
|
|
|
+ loop c
|
|
|
) c.cl_implements
|
|
|
else match c.cl_super with
|
|
|
| Some(c,_) ->
|
|
|
- maybe_recurse c
|
|
|
+ loop c
|
|
|
| None ->
|
|
|
()
|
|
|
in
|
|
|
- loop c cf;
|
|
|
+ loop c;
|
|
|
DynArray.to_list acc
|