diff libinterp/octave-value/ov-classdef.cc @ 30259:03ff3f1020cf

store file name in classdef class object * ov-classdef.h, ov-classdef.cc (octave_classdef_meta::file_name): New function. * pt-classdef.h, pt-classdef.cc (tree_classdef::m_file_name): New data member. (tree_classdef::tree_classdef): Also accept file name in constructor argument list. (tree_classdef::file_name): New function. * oct-parse.yy (base_parser::make_classdef): Store full file name in created tree_classdef object. * cdef-class.h, cdef-class.cc (cdef_class_rep::file_name, cdef_class::file_name): New functions. (cdef_class:make_meta_class): Store file name in returned class object.
author John W. Eaton <jwe@octave.org>
date Sat, 30 Oct 2021 09:45:23 -0400
parents c789e728d57a
children 91c6288781ba 796f54d4ddbf
line wrap: on
line diff
--- a/libinterp/octave-value/ov-classdef.cc	Sat Oct 30 13:03:02 2021 +0200
+++ b/libinterp/octave-value/ov-classdef.cc	Sat Oct 30 09:45:23 2021 -0400
@@ -458,6 +458,18 @@
   return "";
 }
 
+std::string octave_classdef_meta::file_name (void) const
+{
+  if (m_object.is_class ())
+    {
+      octave::cdef_class cls (m_object);
+
+      return cls.file_name ();
+    }
+
+  return "";
+}
+
 octave_value_list
 octave_classdef_superclass_ref::execute (octave::tree_evaluator& tw,
                                          int nargout,