view test/bug-38691/bug-38691.tst @ 16605:2f8fb02a6c31

erase subfunctions when primary function scope is deleted (bug #38691) * symtab.h (symbol_table::fcn_info::fcn_info_rep::clear_map): Rename from clear_unlocked. New arg, force. (symbol_table::fcn_info::fcn_info_rep::clear_autoload_function, (symbol_table::fcn_info::fcn_info::clear_autoload_function, symbol_table::fcn_info::fcn_info_rep::clear_user_function, symbol_table::fcn_info::fcn_info::clear_user_function, symbol_table::fcn_info::fcn_info_rep::clear, symbol_table::fcn_info::clear, symbol_table::clear_all, symbol_table::clear_functions.): New arg, force. (symbol_table::erase_scope): Call erase_subfunctions_in_scope. (symbol_table::do_pop_context, symbol_table::do_clear_global_pattern): Style fixes. * symtab.cc (symbol_table::cleanup): Simplify. * test/bug-38691/module.mk, test/bug-38691/bug-38691.tst, test/bug-38691/dir1/func1.m, test/bug-38691/dir2/func1.m, test/bug-38691/dir2/func2.m, test/bug-38691/dir2/func3.m: New files. * test/Makefile.am: Include bug-38691/module.mk.
author John W. Eaton <jwe@octave.org>
date Fri, 03 May 2013 01:16:41 -0400
parents
children 26992c04d5dc
line wrap: on
line source

%!test
%! addpath dir1
%! [d1_r, d1_f1, d1_f2, d1_f3] = func1 (0);
%! addpath dir2
%! [d2_r, d2_f1, d2_f2, d2_f3] = func1 (0);
%! assert (d1_r, 0);
%! assert (d2_r, 1);
%! assert (d1_f1, "dir1/func1");
%! assert (d1_f2, "dir1/func2");
%! assert (d1_f3, "dir1/func3");
%! assert (d2_f1, "dir2/func1");
%! assert (d2_f2, "dir2/func2");
%! assert (d2_f3, "dir2/func3");