mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-14 05:12:33 +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/
28 lines
858 B
Java
28 lines
858 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 typedef "MR_TypeClassDeclStruct"
|
|
// in runtime/mercury_types.h, i.e. the C struct
|
|
// "struct MR_TypeClassDecl_Struct" in runtime/mercury_typeclass_info.h.
|
|
|
|
public class TypeClassDeclStruct {
|
|
public TypeClassId tc_decl_id;
|
|
public int tc_decl_version_number;
|
|
public int tc_decl_num_supers; // redundant
|
|
public TypeClassConstraint tc_decl_supers;
|
|
|
|
public TypeClassDeclStruct(TypeClassId id, int version_number,
|
|
int num_supers, TypeClassConstraint supers)
|
|
{
|
|
tc_decl_id = id;
|
|
tc_decl_version_number = version_number;
|
|
tc_decl_num_supers = num_supers;
|
|
tc_decl_supers = supers;
|
|
}
|
|
}
|