mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-19 15:54:18 +00:00
Branches: main
Mark Java RTTI classes as implementing java.io.Serializable to
enable serialization of existentially typed values.
java/runtime/DuExistInfo.java:
java/runtime/DuExistLocn.java:
java/runtime/DuFunctorDesc.java:
java/runtime/DuPtagLayout.java:
java/runtime/EnumFunctorDesc.java:
java/runtime/ForeignEnumFunctorDesc.java:
java/runtime/MethodPtr.java:
java/runtime/NotagFunctorDesc.java:
java/runtime/PseudoTypeInfo.java:
java/runtime/ReservedAddrFunctorDesc.java:
java/runtime/Sectag_Locn.java:
java/runtime/TypeClassConstraint.java:
java/runtime/TypeClassDeclStruct.java:
java/runtime/TypeClassId.java:
java/runtime/TypeClassMethod.java:
java/runtime/TypeCtorInfo_Struct.java:
java/runtime/TypeCtorRep.java:
java/runtime/TypeFunctors.java:
java/runtime/TypeInfo_Struct.java:
java/runtime/TypeLayout.java:
As above.
TypeCtorInfo_Struct.unify() cannot rely on the uniqueness of
TypeCtorInfo_Struct instances, as deserialisation will create new
copies.
49 lines
1.6 KiB
Java
49 lines
1.6 KiB
Java
//
|
|
// Copyright (C) 2001-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 jmercury.runtime;
|
|
|
|
public class DuFunctorDesc implements java.io.Serializable {
|
|
|
|
public java.lang.String du_functor_name;
|
|
public int du_functor_orig_arity;
|
|
public int du_functor_arg_type_contains_var;
|
|
public Sectag_Locn du_functor_sectag_locn;
|
|
public int du_functor_primary;
|
|
public int du_functor_secondary;
|
|
public int du_functor_ordinal;
|
|
// XXX PseudoTypeInfo's have not been implemented properly
|
|
// yet, so this may not be correct.
|
|
public /*final*/ PseudoTypeInfo[] du_functor_arg_types;
|
|
public /*final*/ java.lang.String[] du_functor_arg_names;
|
|
public /*final*/ DuExistInfo du_functor_exist_info;
|
|
|
|
public DuFunctorDesc()
|
|
{
|
|
}
|
|
|
|
public void init(java.lang.String functor_name, int orig_arity,
|
|
int arg_type_contains_var, int sectag_locn, int primary,
|
|
int secondary, int ordinal,
|
|
// XXX why do we need to use Object here?
|
|
java.lang.Object arg_types,
|
|
java.lang.Object arg_names,
|
|
java.lang.Object exist_info)
|
|
{
|
|
du_functor_name = functor_name;
|
|
du_functor_orig_arity = orig_arity;
|
|
du_functor_ordinal = ordinal;
|
|
du_functor_arg_type_contains_var = arg_type_contains_var;
|
|
du_functor_sectag_locn = new Sectag_Locn(sectag_locn);
|
|
du_functor_primary = primary;
|
|
du_functor_secondary = secondary;
|
|
du_functor_ordinal = ordinal;
|
|
du_functor_arg_types = (PseudoTypeInfo []) arg_types;
|
|
du_functor_arg_names = (java.lang.String []) arg_names;
|
|
du_functor_exist_info = (DuExistInfo) exist_info;
|
|
}
|
|
}
|