mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-12 04:14:06 +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/
25 lines
688 B
Java
25 lines
688 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_TypeClassMethod
|
|
// in runtime/mercury_typeclass_info.h.
|
|
|
|
public class TypeClassMethod {
|
|
public /* final */ java.lang.String tc_method_name;
|
|
public /* final */ int tc_method_arity;
|
|
public /* final */ int /* PredFunc */ tc_method_pred_func;
|
|
|
|
public TypeClassMethod(java.lang.String name, int arity,
|
|
int pred_func)
|
|
{
|
|
tc_method_name = name;
|
|
tc_method_arity = arity;
|
|
tc_method_pred_func = pred_func;
|
|
}
|
|
}
|