Mercury Bugs - mercury | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0000076 | mercury | Bug | public | 2008-08-14 15:13 | 2008-08-22 13:12 |
Reporter | wangp | ||||
---|---|---|---|---|---|
Assigned To | wangp | ||||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | OS | OS Version | |||
Product Version | |||||
Target Version | Fixed in Version | ||||
Summary | 0000076: --make-opt-int incorrectly handles existentially typed methods | ||||
Description | The compiler aborts when making a .opt file if the module contains a typeclass instance which implements a method with existentially typed arguments, but the predicate which implements the method is not itself existentially typed, e.g. :- typeclass dynamic_block(T) where [ some [Q] pred generate_block(T::in, Q::out) is det ]. :- instance dynamic_block(simple_dynamic_block) where [ pred(generate_block/2) is do_generate_block ]. :- pred do_generate_block(simple_dynamic_block::in, string::out) is det. % mmc --make-opt-int intermod_typeclass_exist Uncaught Mercury exception: Software Error: pred_table.m: Unexpected: type error in pred call: no matching pred Stack dump follows: 0 pred exception.throw/1-0 (erroneous) (exception.m:388) 1 pred require.error/1-0 (erroneous) (require.m:122) 2 pred libs.compiler_util.unexpected/2-0 (erroneous) (compiler_util.m:87) 3 pred hlds.pred_table.resolve_pred_overloading/7-0 (det) (pred_table.m:983) 4 pred transform_hlds.intermod.qualify_instance_method/5-0 (det) (intermod.m:907) 5 pred list.map_foldl/5-1 (det) (list.m:2292) 6 pred transform_hlds.intermod.gather_instances_3/5-0 (det) (intermod.m:822) 7 pred list.foldl/4-1 (det) (list.m:2164) 8 pred transform_hlds.intermod.gather_instances_2/5-0 (det) (intermod.m:786) 9 2* pred tree234.foldl/4-0 (det) (tree234.m:2506 and others) 11 pred map.foldl/4-0 (det) (map.m:863) 12 pred transform_hlds.intermod.gather_instances/2-0 (det) (intermod.m:779) 13 pred transform_hlds.intermod.write_opt_file/4-0 (det) (intermod.m:171) 14 pred top_level.mercury_compile.maybe_write_optfile/7-0 (det) (mercury_compile.m:2287) 15 pred top_level.mercury_compile.frontend_pass_no_type_error/9-0 (det) (mercury_compile.m:2238) 16 pred top_level.mercury_compile.frontend_pass/11-0 (det) (mercury_compile.m:2110) 17 pred top_level.mercury_compile.mercury_compile/8-0 (det) (mercury_compile.m:1499) 18 pred top_level.mercury_compile.compile/10-0 (det) (mercury_compile.m:1478) | ||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | intermod_typeclass_exist.m (1,037) 2008-08-14 15:13 https://bugs.mercurylang.org/file_download.php?file_id=63&type=bug |
Notes | |||||
|
|||||
|
|
Issue History | |||||
Date Modified | Username | Field | Change | ||
---|---|---|---|---|---|
2008-08-14 15:13 | wangp | New Issue | |||
2008-08-14 15:13 | wangp | File Added: intermod_typeclass_exist.m | |||
2008-08-22 13:12 | wangp | Status | new => resolved | ||
2008-08-22 13:12 | wangp | Resolution | open => fixed | ||
2008-08-22 13:12 | wangp | Assigned To | => wangp | ||
2008-08-22 13:12 | wangp | Note Added: 0000141 |