32 readonly Module module;
33 readonly Type declaringType;
39 bool cyclicTypeForwarder;
49 internal MissingType(Module module, Type declaringType,
string ns,
string name)
52 this.declaringType = declaringType;
55 MarkKnownType(ns, name);
58 internal override MethodBase FindMethod(
string name,
MethodSignature signature)
67 internal override FieldInfo FindField(
string name,
FieldSignature signature)
72 internal override Type FindNestedType(
TypeName name)
77 internal override Type FindNestedTypeIgnoreCase(
TypeName lowerCaseName)
89 get {
return declaringType; }
94 get {
return new TypeName(ns, name); }
97 public override string Name
104 get {
return GetFullName(); }
107 public override Module Module
109 get {
return module; }
114 get {
return token; }
121 switch (typeFlags & (TypeFlags.ValueType | TypeFlags.NotValueType))
123 case TypeFlags.ValueType:
125 case TypeFlags.NotValueType:
128 if (module.Universe.ResolveMissingTypeIsValueType(
this))
129 typeFlags |= TypeFlags.ValueType;
131 typeFlags |= TypeFlags.NotValueType;
133 return (typeFlags & TypeFlags.ValueType) != 0;
140 get {
throw new MissingMemberException(
this); }
145 get {
throw new MissingMemberException(
this); }
150 throw new MissingMemberException(
this);
155 throw new MissingMemberException(
this);
160 throw new MissingMemberException(
this);
165 throw new MissingMemberException(
this);
170 throw new MissingMemberException(
this);
175 throw new MissingMemberException(
this);
180 throw new MissingMemberException(
this);
185 throw new MissingMemberException(
this);
190 throw new MissingMemberException(
this);
195 throw new MissingMemberException(
this);
198 public override bool __GetLayout(out
int packingSize, out
int typeSize)
200 throw new MissingMemberException(
this);
205 get {
throw new MissingMemberException(
this); }
210 get {
throw new MissingMemberException(
this); }
213 internal override Type GetGenericTypeArgument(
int index)
215 if (typeArgs ==
null)
216 typeArgs =
new Type[index + 1];
217 else if (typeArgs.Length <= index)
218 Array.Resize(
ref typeArgs, index + 1);
223 internal override Type BindTypeParameters(IGenericBinder binder)
228 internal override Type SetMetadataTokenForMissing(
int token,
int flags)
235 internal override Type SetCyclicTypeForwarder()
237 this.cyclicTypeForwarder =
true;
241 internal override Type SetCyclicTypeSpec()
243 this.cyclicTypeSpec =
true;
247 internal override bool IsBaked
249 get {
throw new MissingMemberException(
this); }
255 get {
return (flags & 0x00200000) != 0; }
260 get {
return cyclicTypeForwarder; }
265 get {
return cyclicTypeSpec; }
IKVM.Reflection.Type Type
global::java.lang.invoke.LambdaForm.Name Name
Represents a method signature from IL metadadata.
override bool __IsMissing
override bool __IsCyclicTypeSpec
override MethodBase[] __GetDeclaredMethods()
override Type[] GetGenericArguments()
override bool IsGenericTypeDefinition
override CustomModifiers[] __GetGenericArgumentsCustomModifiers()
override TypeAttributes Attributes
override Type[] __GetDeclaredInterfaces()
override PropertyInfo[] __GetDeclaredProperties()
override EventInfo[] __GetDeclaredEvents()
override __MethodImplMap __GetMethodImplMap()
override FieldInfo[] __GetDeclaredFields()
override bool IsValueTypeImpl
override bool IsGenericType
override int MetadataToken
override Type[] __GetDeclaredTypes()
override bool __IsTypeForwarder
override CustomModifiers __GetCustomModifiers()
override bool __IsCyclicTypeForwarder
override bool __GetLayout(out int packingSize, out int typeSize)
override Type DeclaringType