Imported Upstream version 4.2.0.179

Former-commit-id: 0a113cb3a6feb7873f632839b1307cc6033cd595
This commit is contained in:
Xamarin Public Jenkins
2015-08-26 07:17:56 -04:00
committed by Jo Shields
parent 183bba2c9a
commit 6992685b86
7507 changed files with 90259 additions and 657307 deletions

View File

@@ -30,6 +30,11 @@ namespace IKVM.Reflection.Reader
{
abstract class TypeParameterType : TypeInfo
{
protected TypeParameterType(byte sigElementType)
: base(sigElementType)
{
}
public sealed override string AssemblyQualifiedName
{
get { return null; }
@@ -83,11 +88,6 @@ namespace IKVM.Reflection.Reader
return this.Name;
}
public sealed override bool IsGenericParameter
{
get { return true; }
}
protected sealed override bool ContainsMissingTypeImpl
{
get { return ContainsMissingType(GetGenericParameterConstraints()); }
@@ -183,6 +183,7 @@ namespace IKVM.Reflection.Reader
}
private UnboundGenericMethodParameter(int position)
: base(Signature.ELEMENT_TYPE_MVAR)
{
this.position = position;
}
@@ -259,7 +260,8 @@ namespace IKVM.Reflection.Reader
private readonly ModuleReader module;
private readonly int index;
internal GenericTypeParameter(ModuleReader module, int index)
internal GenericTypeParameter(ModuleReader module, int index, byte sigElementType)
: base(sigElementType)
{
this.module = module;
this.index = index;

View File

@@ -194,7 +194,7 @@ namespace IKVM.Reflection.Reader
int len = module.GenericParam.records.Length;
for (int i = first; i < len && module.GenericParam.records[i].Owner == token; i++)
{
list.Add(new GenericTypeParameter(module, i));
list.Add(new GenericTypeParameter(module, i, Signature.ELEMENT_TYPE_MVAR));
}
typeArgs = list.ToArray();
}

View File

@@ -279,7 +279,7 @@ namespace IKVM.Reflection.Reader
}
else if (!type.IsNestedByFlags)
{
types.Add(new TypeName(type.__Namespace, type.__Name), type);
types.Add(type.TypeName, type);
}
}
// add forwarded types to forwardedTypes dictionary (because Module.GetType(string) should return them)
@@ -402,14 +402,14 @@ namespace IKVM.Reflection.Reader
case AssemblyRefTable.Index:
{
Assembly assembly = ResolveAssemblyRef((scope & 0xFFFFFF) - 1);
TypeName typeName = GetTypeName(TypeRef.records[index].TypeNameSpace, TypeRef.records[index].TypeName);
TypeName typeName = GetTypeName(TypeRef.records[index].TypeNamespace, TypeRef.records[index].TypeName);
typeRefs[index] = assembly.ResolveType(this, typeName);
break;
}
case TypeRefTable.Index:
{
Type outer = ResolveType(scope, null);
TypeName typeName = GetTypeName(TypeRef.records[index].TypeNameSpace, TypeRef.records[index].TypeName);
TypeName typeName = GetTypeName(TypeRef.records[index].TypeNamespace, TypeRef.records[index].TypeName);
typeRefs[index] = outer.ResolveNestedType(this, typeName);
break;
}
@@ -432,7 +432,7 @@ namespace IKVM.Reflection.Reader
{
module = ResolveModuleRef(ModuleRef.records[(scope & 0xFFFFFF) - 1]);
}
TypeName typeName = GetTypeName(TypeRef.records[index].TypeNameSpace, TypeRef.records[index].TypeName);
TypeName typeName = GetTypeName(TypeRef.records[index].TypeNamespace, TypeRef.records[index].TypeName);
typeRefs[index] = module.FindType(typeName) ?? module.universe.GetMissingTypeOrThrow(this, module, null, typeName);
break;
}
@@ -583,7 +583,7 @@ namespace IKVM.Reflection.Reader
PopulateTypeDef();
foreach (Type type in types.Values)
{
if (new TypeName(type.__Namespace, type.__Name).ToLowerInvariant() == lowerCaseName)
if (type.TypeName.ToLowerInvariant() == lowerCaseName)
{
return type;
}
@@ -1241,7 +1241,7 @@ namespace IKVM.Reflection.Reader
if ((CustomAttribute.records[i].Parent >> 24) == TypeRefTable.Index)
{
int index = (CustomAttribute.records[i].Parent & 0xFFFFFF) - 1;
if (typeName == GetTypeName(TypeRef.records[index].TypeNameSpace, TypeRef.records[index].TypeName))
if (typeName == GetTypeName(TypeRef.records[index].TypeNamespace, TypeRef.records[index].TypeName))
{
list.Add(new CustomAttributeData(this, i));
}

View File

@@ -43,7 +43,7 @@ namespace IKVM.Reflection.Reader
this.index = index;
this.typeName = module.GetString(module.TypeDef.records[index].TypeName);
this.typeNamespace = module.GetString(module.TypeDef.records[index].TypeNamespace);
MarkEnumOrValueType(typeNamespace, typeName);
MarkKnownType(typeNamespace, typeName);
}
public override Type BaseType
@@ -218,14 +218,9 @@ namespace IKVM.Reflection.Reader
return Empty<PropertyInfo>.Array;
}
public override string __Name
internal override TypeName TypeName
{
get { return typeName; }
}
public override string __Namespace
{
get { return typeNamespace; }
get { return new TypeName(typeNamespace, typeName); }
}
public override string Name
@@ -265,7 +260,7 @@ namespace IKVM.Reflection.Reader
int len = module.GenericParam.records.Length;
for (int i = first; i < len && module.GenericParam.records[i].Owner == token; i++)
{
list.Add(new GenericTypeParameter(module, i));
list.Add(new GenericTypeParameter(module, i, Signature.ELEMENT_TYPE_VAR));
}
typeArgs = list.ToArray();
}