From 478f4efa5618412518fb75f94e7c2d33ee4b4c52 Mon Sep 17 00:00:00 2001 From: Chris Jefferson Date: Sun, 8 Jan 2017 20:44:23 +0000 Subject: [PATCH] Show filename/line information in ApplicableMethod --- lib/function.g | 4 ++-- lib/methwhy.g | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/function.g b/lib/function.g index 083b542cfb..2e3630aadc 100644 --- a/lib/function.g +++ b/lib/function.g @@ -327,10 +327,10 @@ BIND_GLOBAL( "EndlineFunc", ENDLINE_FUNC ); ## provided by and ##

## FilenameFunc( Intersection ); +## gap> LocationFunc( Intersection ); ## "... some path ... gap/lib/coll.gi:2467" ## # String is an attribute, so no information is stored -## gap> FilenameFunc( String ); +## gap> LocationFunc( String ); ## "" ## ]]> ## diff --git a/lib/methwhy.g b/lib/methwhy.g index 743f989bd5..7ad487f29d 100644 --- a/lib/methwhy.g +++ b/lib/methwhy.g @@ -176,8 +176,13 @@ local oper,l,obj,skip,verbos,fams,flags,i,j,methods,flag,flag2, for i in [1..Length(methods)/lent] do nam:=methods[lent*(i-1)+l+4]; val:=methods[lent*(i-1)+l+3]; + oper:=methods[lent*(i-1)+l+2]; if verbos>1 then - Print("#I Method ",i,": ``",nam,"'', value: "); + Print("#I Method ",i,": ``",nam,"''"); + if LocationFunc(oper) <> "" then + Print(" at ",LocationFunc(oper)); + fi; + Print(", value: "); Print_Value_SFF(val); Print("\n"); fi; @@ -205,12 +210,16 @@ local oper,l,obj,skip,verbos,fams,flags,i,j,methods,flag,flag2, od; if flag then if fams=fail or CallFuncList(methods[lent*(i-1)+1],fams) then + oper:=methods[lent*(i-1)+j+1]; if verbos=1 then - Print("#I Method ",i,": ``",nam,"'', value: "); + Print("#I Method ",i,": ``",nam,"''"); + if LocationFunc(oper) <> "" then + Print(" at ",LocationFunc(oper)); + fi; + Print(" , value: "); Print_Value_SFF(val); Print("\n"); fi; - oper:=methods[lent*(i-1)+j+1]; if verbos>5 then Print("#I Function Body:\n"); Print(oper);