private CORINFO_CLASS_STRUCT_* getBuiltinClass(IntPtr _this, CorInfoClassId classId) { switch (classId) { case CorInfoClassId.CLASSID_SYSTEM_OBJECT: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.Object)); case CorInfoClassId.CLASSID_TYPED_BYREF: // TODO: better exception type: invalid input IL throw new NotSupportedException("TypedReference not supported in .NET Core"); case CorInfoClassId.CLASSID_TYPE_HANDLE: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeTypeHandle)); case CorInfoClassId.CLASSID_FIELD_HANDLE: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeFieldHandle)); case CorInfoClassId.CLASSID_METHOD_HANDLE: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeMethodHandle)); case CorInfoClassId.CLASSID_ARGUMENT_HANDLE: // TODO: better exception type: invalid input IL throw new NotSupportedException("Vararg methods not supported in .NET Core"); case CorInfoClassId.CLASSID_STRING: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.String)); case CorInfoClassId.CLASSID_RUNTIME_TYPE: // This is used in a JIT optimization. It's not applicable due to the structure of CoreRT CoreLib. return null; default: throw new NotImplementedException(); } }
public virtual CORINFO_CLASS_STRUCT_* getBuiltinClass_wrapper(IntPtr _this, out IntPtr exception, CorInfoClassId classId) { exception = IntPtr.Zero; try { return getBuiltinClass(classId); } catch (Exception ex) { exception = AllocException(ex); } return (CORINFO_CLASS_STRUCT_*)0; }
private CORINFO_CLASS_STRUCT_* getBuiltinClass(CorInfoClassId classId) { switch (classId) { case CorInfoClassId.CLASSID_SYSTEM_OBJECT: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.Object)); case CorInfoClassId.CLASSID_TYPED_BYREF: throw new TypeSystemException.TypeLoadException("System", "TypedReference", _compilation.TypeSystemContext.SystemModule); case CorInfoClassId.CLASSID_TYPE_HANDLE: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeTypeHandle)); case CorInfoClassId.CLASSID_FIELD_HANDLE: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeFieldHandle)); case CorInfoClassId.CLASSID_METHOD_HANDLE: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.RuntimeMethodHandle)); case CorInfoClassId.CLASSID_ARGUMENT_HANDLE: throw new TypeSystemException.TypeLoadException("System", "RuntimeArgumentHandle", _compilation.TypeSystemContext.SystemModule); case CorInfoClassId.CLASSID_STRING: return ObjectToHandle(_compilation.TypeSystemContext.GetWellKnownType(WellKnownType.String)); case CorInfoClassId.CLASSID_RUNTIME_TYPE: // This is used in a JIT optimization. It's not applicable due to the structure of CoreRT CoreLib. return null; default: throw new NotImplementedException(); } }
static CORINFO_CLASS_STRUCT_* _getBuiltinClass(IntPtr thisHandle, IntPtr* ppException, CorInfoClassId classId) { var _this = GetThis(thisHandle); try { return _this.getBuiltinClass(classId); } catch (Exception ex) { *ppException = _this.AllocException(ex); return default(CORINFO_CLASS_STRUCT_*); } }
CORINFO_CLASS_STRUCT_* getBuiltinClass(IntPtr _this, CorInfoClassId classId) { throw new NotImplementedException("getBuiltinClass"); }