mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-10 03:13:46 +00:00
Estimated hours taken: 3 Branches: main Some fixes to the Java back-end, to make it work again after Zoltan's recent type class RTTI changes. java/runtime/DuExistInfo.java: Add a new field "exist_constraints" to the DuExistInfo type and a corresponding argument to the constructor, to match Zoltan's recent changes. java/runtime/TypeClassId.java: java/runtime/TypeClassMethod.java: java/runtime/TypeClassDeclStruct.java: java/runtime/TypeClassConstraint.java: New files. These correspond to the C types MR_TypeClassId, MR_TypeClassMethod, MR_TypeClassDeclStruct, and MR_TypeClassConstraint in the C runtime. java/runtime/TypeCtorInfo_Struct.java: Add a comment. compiler/rtti_to_mlds.m: Don't cast null pointers to mlds__generic_type; they should have the right type already. Casting to mlds__generic_type here causes type errors for the Java back-end, because in Java there are no implicit conversions from Object (unlike C, which allows implicit conversions from `void *'). compiler/rtti.m: Change tc_rtti_name_java_type so that it maps the new typeclass-related RTTI types to the appropriate Java types. library/private_builtin.m: Define MR_PREDICATE and MR_FUNCTION. java/runtime/PredFunc.java: Fix a bug in my previous change: s/MR_PRED/MR_PREDICATE/ s/MR_FUNC/MR_FUNCTION/
34 lines
994 B
Java
34 lines
994 B
Java
//
|
|
// Copyright (C) 2004 The University of Melbourne.
|
|
// This file may only be copied under the terms of the GNU Library General
|
|
// Public License - see the file COPYING.LIB in the Mercury distribution.
|
|
//
|
|
|
|
package mercury.runtime;
|
|
|
|
// This corresponds to the C type MR_TypeClassId
|
|
// in runtime/mercury_typeclass_info.h.
|
|
|
|
public class TypeClassId {
|
|
public String tc_id_module_name;
|
|
public String tc_id_name;
|
|
public int tc_id_arity;
|
|
public int tc_id_num_type_vars; // XXX redundant
|
|
public int tc_id_num_methods; // XXX redundant
|
|
public String[] tc_id_var_names;
|
|
public TypeClassMethod[] tc_id_methods;
|
|
|
|
public TypeClassId(String module_name, String name, int arity,
|
|
int num_type_vars, int num_methods,
|
|
String[] var_names, TypeClassMethod[] methods)
|
|
{
|
|
tc_id_module_name = module_name;
|
|
tc_id_name = name;
|
|
tc_id_arity = arity;
|
|
tc_id_num_type_vars = num_type_vars;
|
|
tc_id_num_methods = num_methods;
|
|
tc_id_var_names = var_names;
|
|
tc_id_methods = methods;
|
|
}
|
|
}
|