Peter Wang
6d1631511c
Fix bug #230 . When compiling a sub-module we could incorrectly use the
...
Branches: main
Fix bug #230 . When compiling a sub-module we could incorrectly use the
direct argument functor representation for a d.u. functor when:
1. the outer type is defined and exported from an ancestor module, and
2. the functor argument type is defined in the same ancestor module,
but the type definition is NOT exported.
e.g.
:- module ancestor.
:- interface.
:- type outer ---> f(inner) ; ... .
:- type inner.
:- implementation.
:- type inner ---> inner( ... ).
To solve the problem, the sub-module must be able to distinguish between type
definitions which are available from the ancestor module's public interface,
and type definitions which the ancestor only exported to sub-modules.
The distinction was not apparent in the `.int0' private interface files --
all items were contained into a single interface section, no matter
where they came from in the original source file.
This change separates `.int0' files into two sections: the interface section
for items in the public interface, and the implementation section for items in
the private interface.
compiler/modules.m:
Change `.int0' files to have two sections as described.
Sort the contents of the individual sections.
compiler/add_type.m:
Do not let other statuses override
`status_imported(import_locn_ancestor_private_interface_proper)'.
compiler/make_tags.m:
Fix the main bug described.
Fix a bug where a type with `status_abstract_exported' was not
considered exported-to-submodules, which it is.
compiler/prog_data.m:
Rename and clarify that `import_locn_ancestor_private_interface_proper'
really, really means that it came from the actual, true, and proper
private interface of a module and nowhere else.
compiler/prog_item.m:
Rename `md_private_interface' to what it really means.
compiler/equiv_type.m:
compiler/hlds_out_pred.m:
compiler/hlds_pred.m:
compiler/make_hlds_passes.m:
compiler/mercury_to_mercury.m:
compiler/module_qual.m:
Conform to changes.
tests/hard_coded/Mmakefile:
tests/hard_coded/daf_bug.exp:
tests/hard_coded/daf_bug.m:
tests/hard_coded/daf_bug_parent.m:
tests/hard_coded/daf_bug_sub.m:
Add test case.
tests/invalid/ii_parent.ii_child.err_exp:
Update expected output.
2011-11-22 23:04:53 +00:00
..
2011-10-20 06:37:35 +00:00
2011-10-20 06:37:35 +00:00
2007-09-04 05:15:55 +00:00
2011-02-16 02:11:50 +00:00
2006-12-27 03:49:26 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2007-10-02 04:32:50 +00:00
2006-09-07 05:51:48 +00:00
2007-10-02 04:32:50 +00:00
2009-09-04 02:28:10 +00:00
2007-05-14 08:20:17 +00:00
2006-09-07 05:51:48 +00:00
2007-11-14 03:45:14 +00:00
2011-03-07 03:59:43 +00:00
2007-11-14 03:45:14 +00:00
2006-09-07 05:51:48 +00:00
2007-11-14 03:45:14 +00:00
2006-09-07 05:51:48 +00:00
2007-11-14 03:45:14 +00:00
2008-01-22 15:08:36 +00:00
2005-12-14 05:14:17 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 20:37:57 +00:00
2005-10-04 07:20:24 +00:00
2009-08-14 20:37:57 +00:00
2005-10-04 07:20:24 +00:00
2009-04-16 02:09:09 +00:00
2009-08-14 20:37:57 +00:00
2007-01-15 02:24:28 +00:00
2011-03-07 03:59:43 +00:00
2007-10-19 05:10:36 +00:00
2009-11-05 06:34:49 +00:00
2006-06-14 08:15:01 +00:00
2006-09-07 05:51:48 +00:00
2009-04-05 16:48:35 +00:00
2009-04-05 16:48:35 +00:00
2009-10-16 07:27:45 +00:00
2009-10-16 07:27:45 +00:00
2010-09-15 04:35:34 +00:00
2010-09-15 04:35:34 +00:00
2011-05-16 05:03:43 +00:00
2011-05-16 05:03:43 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-03-29 08:09:58 +00:00
2008-07-16 03:31:03 +00:00
2007-12-05 05:07:45 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 20:37:57 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2006-10-13 04:52:38 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2006-06-16 07:24:42 +00:00
2006-09-07 05:51:48 +00:00
2005-10-31 02:43:56 +00:00
2005-10-28 02:11:03 +00:00
2005-10-28 02:11:03 +00:00
2011-04-08 07:25:55 +00:00
2011-04-08 07:25:55 +00:00
2010-12-29 04:52:23 +00:00
2005-10-27 02:22:05 +00:00
2011-06-16 06:42:19 +00:00
2007-07-25 06:12:32 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 03:21:55 +00:00
2007-02-15 00:41:59 +00:00
2007-01-06 10:54:43 +00:00
2009-08-14 20:37:57 +00:00
2009-09-04 02:28:10 +00:00
2005-09-12 09:02:30 +00:00
2009-11-05 06:34:49 +00:00
2006-09-07 05:51:48 +00:00
2005-10-14 01:42:56 +00:00
2006-09-07 05:51:48 +00:00
2006-06-14 08:15:01 +00:00
2009-08-14 20:37:57 +00:00
2005-09-14 05:27:11 +00:00
2006-06-14 08:15:01 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2009-04-16 02:09:09 +00:00
2009-04-16 02:09:09 +00:00
2009-08-14 20:37:57 +00:00
2006-06-14 08:15:01 +00:00
2006-06-14 08:15:01 +00:00
2009-08-14 20:37:57 +00:00
2006-04-04 08:02:46 +00:00
2011-04-08 07:29:38 +00:00
2010-09-10 05:15:05 +00:00
2007-08-20 03:39:31 +00:00
2007-08-20 03:39:31 +00:00
2007-08-20 03:39:31 +00:00
2007-08-20 03:39:31 +00:00
2009-08-14 20:37:57 +00:00
2006-07-10 04:41:00 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2007-05-17 03:59:55 +00:00
2007-05-02 06:16:40 +00:00
2006-09-07 05:51:48 +00:00
2007-02-07 14:00:45 +00:00
2007-02-07 14:00:45 +00:00
2006-09-12 04:41:52 +00:00
2008-07-24 06:20:43 +00:00
2009-08-14 20:37:57 +00:00
2006-10-29 03:18:59 +00:00
2006-10-29 03:18:59 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2006-07-12 02:51:22 +00:00
2008-01-22 15:08:36 +00:00
2008-01-22 15:08:36 +00:00
2009-09-14 03:38:43 +00:00
2006-03-29 08:09:58 +00:00
2006-09-07 05:51:48 +00:00
2009-09-14 03:38:43 +00:00
2006-03-29 08:09:58 +00:00
2007-05-28 01:06:25 +00:00
2006-09-07 05:51:48 +00:00
2011-11-22 23:04:53 +00:00
2009-04-05 12:16:48 +00:00
2009-04-05 12:16:48 +00:00
2009-04-16 02:09:09 +00:00
2009-08-14 20:37:57 +00:00
2008-04-03 05:26:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2006-09-12 04:41:52 +00:00
2006-07-10 04:41:00 +00:00
2007-05-21 04:23:26 +00:00
2007-05-21 04:23:26 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2009-08-14 20:37:57 +00:00
2005-09-14 05:27:11 +00:00
2009-04-16 02:09:09 +00:00
2006-10-19 07:29:56 +00:00
2007-10-22 05:10:33 +00:00
2007-10-22 05:10:33 +00:00
2007-11-14 04:00:06 +00:00
2007-11-14 04:00:06 +00:00
2006-12-05 03:51:22 +00:00
2006-11-28 06:17:21 +00:00
2006-11-28 06:17:21 +00:00
2006-07-19 15:19:09 +00:00
2006-07-19 15:19:09 +00:00
2009-04-16 02:09:09 +00:00
2007-10-02 04:32:50 +00:00
2009-08-14 20:37:57 +00:00
2006-12-15 03:58:44 +00:00
2006-12-15 03:58:44 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 20:37:57 +00:00
2006-09-07 05:51:48 +00:00
2008-07-16 03:31:03 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2010-03-30 23:57:27 +00:00
2010-03-30 23:57:27 +00:00
2010-03-30 23:57:27 +00:00
2006-12-15 03:58:44 +00:00
2007-05-17 03:53:13 +00:00
2009-04-16 02:09:09 +00:00
2010-09-10 05:15:05 +00:00
2006-10-25 14:08:59 +00:00
2006-10-25 14:08:59 +00:00
2009-08-14 20:37:57 +00:00
2006-09-07 05:51:48 +00:00
2011-05-09 16:45:32 +00:00
2011-05-09 16:45:32 +00:00
2011-05-09 16:45:32 +00:00
2006-03-29 08:09:58 +00:00
2006-03-29 08:09:58 +00:00
2006-03-29 08:09:58 +00:00
2006-09-07 05:51:48 +00:00
2009-04-16 02:09:09 +00:00
2006-10-09 06:40:29 +00:00
2011-11-14 05:48:24 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-12 04:41:52 +00:00
2005-09-14 05:27:11 +00:00
2009-04-16 02:09:09 +00:00
2008-04-28 00:50:56 +00:00
2008-04-28 00:50:56 +00:00
2009-08-14 20:37:57 +00:00
2006-09-12 04:41:52 +00:00
2010-09-10 05:15:05 +00:00
2009-08-14 20:37:57 +00:00
2006-07-10 04:41:00 +00:00
2009-08-14 20:37:57 +00:00
2006-03-24 04:40:59 +00:00
2005-10-27 02:22:05 +00:00
2006-10-01 04:24:12 +00:00
2006-09-07 05:51:48 +00:00
2006-03-29 08:09:58 +00:00
2006-09-07 05:51:48 +00:00
2006-08-14 09:09:22 +00:00
2009-08-14 20:37:57 +00:00
2007-03-18 23:35:04 +00:00
2009-04-16 02:09:09 +00:00
2009-08-14 20:37:57 +00:00
2006-10-13 04:52:38 +00:00
2006-03-24 04:40:59 +00:00
2011-05-03 04:35:04 +00:00
2006-03-29 08:09:58 +00:00
2007-11-01 01:07:26 +00:00
2006-06-14 08:15:01 +00:00
2009-08-14 20:37:57 +00:00
2005-09-14 05:27:11 +00:00
2010-09-10 05:15:05 +00:00
2006-10-13 04:52:38 +00:00
2005-09-14 05:27:11 +00:00
2006-07-10 04:41:00 +00:00
2008-07-16 03:31:03 +00:00
2007-07-31 05:02:13 +00:00
2009-08-14 20:37:57 +00:00
2006-10-01 04:24:12 +00:00
2005-09-14 05:27:11 +00:00
2006-09-12 04:41:52 +00:00
2006-03-24 04:40:59 +00:00
2007-02-05 08:43:20 +00:00
2007-02-05 03:12:54 +00:00
2006-03-21 22:25:39 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 20:37:57 +00:00
2006-03-29 08:09:58 +00:00
2006-10-13 04:52:38 +00:00
2006-09-07 05:51:48 +00:00
2006-10-29 03:18:59 +00:00
2006-10-19 07:29:56 +00:00
2009-08-14 20:37:57 +00:00
2011-11-14 05:48:24 +00:00
2011-11-15 02:21:15 +00:00
2011-01-02 14:38:08 +00:00
2010-12-29 04:52:23 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 20:37:57 +00:00
2007-11-16 03:44:54 +00:00
2006-09-07 05:51:48 +00:00
2006-03-29 08:09:58 +00:00
2011-03-07 03:59:43 +00:00
2011-03-07 03:59:43 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2006-09-07 05:51:48 +00:00
2011-03-07 03:59:43 +00:00
2009-08-14 20:37:57 +00:00
2006-12-26 07:14:21 +00:00
2006-12-21 11:11:37 +00:00
2006-12-26 07:14:21 +00:00
2006-12-21 11:11:37 +00:00
2006-02-27 06:57:06 +00:00
2009-04-05 12:16:48 +00:00
2006-12-14 04:36:04 +00:00
2006-12-14 04:36:04 +00:00
2006-12-14 04:36:04 +00:00
2006-12-14 04:36:04 +00:00
2006-12-14 04:36:04 +00:00
2006-12-14 04:36:04 +00:00
2009-04-16 02:09:09 +00:00
2009-04-16 02:09:09 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2007-12-05 05:07:45 +00:00
2007-01-16 00:31:53 +00:00
2007-01-16 00:31:53 +00:00
2006-06-14 08:15:01 +00:00
2005-09-12 09:02:30 +00:00
2009-08-14 20:37:57 +00:00
2007-02-22 03:50:38 +00:00
2005-09-28 09:02:17 +00:00
2005-09-28 09:02:17 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2011-03-07 03:59:43 +00:00
2009-03-10 05:00:34 +00:00
2011-03-07 03:59:43 +00:00
2010-02-15 01:48:31 +00:00
2009-03-10 05:00:34 +00:00
2009-03-10 05:00:34 +00:00
2009-04-16 02:09:09 +00:00
2009-04-15 03:11:53 +00:00
2009-08-14 20:37:57 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 20:37:57 +00:00
2005-09-14 05:27:11 +00:00
2006-10-29 03:18:59 +00:00
2006-09-07 05:51:48 +00:00
2006-01-16 03:08:17 +00:00
2006-01-16 03:08:17 +00:00
2005-09-14 05:27:11 +00:00
2006-10-01 04:24:12 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2006-01-16 03:08:17 +00:00
2009-11-05 06:34:49 +00:00
2009-08-14 20:37:57 +00:00
2005-09-14 05:27:11 +00:00
2005-09-14 05:27:11 +00:00
2006-10-13 04:52:38 +00:00
2006-09-07 05:51:48 +00:00
2009-08-19 02:53:52 +00:00
2005-09-14 05:27:11 +00:00
2006-10-29 03:18:59 +00:00
2009-08-14 20:37:57 +00:00
2006-09-07 05:51:48 +00:00
2007-09-03 11:44:07 +00:00
2007-09-03 11:44:07 +00:00
2009-08-19 07:45:13 +00:00
2007-05-17 06:15:34 +00:00
2007-05-17 06:15:34 +00:00
2007-05-17 06:15:34 +00:00
2008-07-16 03:31:03 +00:00
2006-09-07 05:51:48 +00:00
2008-04-03 05:26:48 +00:00
2008-04-03 05:26:48 +00:00
2006-09-10 23:39:17 +00:00
2005-09-14 05:27:11 +00:00
2006-09-07 05:51:48 +00:00
2009-08-14 20:37:57 +00:00
2006-06-14 08:15:01 +00:00
2006-09-07 05:51:48 +00:00
2005-09-14 05:27:11 +00:00
2006-10-01 04:24:12 +00:00
2009-08-14 20:37:57 +00:00
2006-08-01 23:37:00 +00:00
2009-08-14 20:37:57 +00:00
2006-08-01 23:37:00 +00:00
2006-09-07 05:51:48 +00:00
2006-06-15 04:48:36 +00:00
2006-09-07 05:51:48 +00:00
2006-10-04 06:37:01 +00:00
2006-10-04 06:37:01 +00:00
2006-09-07 05:51:48 +00:00
2011-05-23 05:08:24 +00:00
2008-09-08 04:35:54 +00:00
2007-09-03 11:44:07 +00:00
2006-11-21 11:47:49 +00:00
2009-08-19 02:53:52 +00:00
2009-08-19 02:53:52 +00:00
2009-08-19 02:53:52 +00:00
2006-09-07 05:51:48 +00:00
2006-09-07 05:51:48 +00:00
2006-06-14 08:15:01 +00:00
2009-08-14 20:37:57 +00:00
2009-08-14 20:37:57 +00:00
2011-07-05 03:34:39 +00:00
2011-07-05 03:34:39 +00:00
2011-06-16 06:42:19 +00:00
2011-06-16 06:42:19 +00:00
2011-07-05 03:34:39 +00:00
2011-06-16 06:42:19 +00:00
2009-08-14 20:37:57 +00:00
2007-11-23 03:16:07 +00:00
2007-10-25 05:05:14 +00:00