Imported Upstream version 4.2.1.36

Former-commit-id: f3008ca867fe7e4b7ae9b9a8844c0ad5798925a9
This commit is contained in:
Xamarin Public Jenkins
2015-09-24 06:06:07 -04:00
committed by Jo Shields
parent afe402035c
commit ea5caba957
172 changed files with 6570 additions and 11015 deletions

View File

@@ -239,6 +239,11 @@ namespace IKVM.Reflection.Reader
throw new InvalidOperationException();
}
public override CustomModifiers[] __GetGenericParameterConstraintCustomModifiers()
{
throw new InvalidOperationException();
}
public override GenericParameterAttributes GenericParameterAttributes
{
get { throw new InvalidOperationException(); }
@@ -331,6 +336,24 @@ namespace IKVM.Reflection.Reader
return list.ToArray();
}
public override CustomModifiers[] __GetGenericParameterConstraintCustomModifiers()
{
IGenericContext context = (this.DeclaringMethod as IGenericContext) ?? this.DeclaringType;
List<CustomModifiers> list = new List<CustomModifiers>();
foreach (int i in module.GenericParamConstraint.Filter(this.MetadataToken))
{
CustomModifiers mods = new CustomModifiers();
int metadataToken = module.GenericParamConstraint.records[i].Constraint;
if ((metadataToken >> 24) == TypeSpecTable.Index)
{
int index = (metadataToken & 0xFFFFFF) - 1;
mods = CustomModifiers.Read(module, module.GetBlob(module.TypeSpec.records[index]), context);
}
list.Add(mods);
}
return list.ToArray();
}
public override GenericParameterAttributes GenericParameterAttributes
{
get { return (GenericParameterAttributes)module.GenericParam.records[index].Flags; }