Interface fields can always be marked as initonly and don't need final access stubs.

This commit is contained in:
jfrijters 2012-06-13 11:34:37 +00:00
Родитель f081d42d03
Коммит 62b5ef0a1d
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -5997,7 +5997,7 @@ namespace IKVM.Internal
private bool NeedsType2AccessStub(FieldWrapper fw)
{
Debug.Assert(this.IsPublic && fw.DeclaringType == this);
return (fw.HasNonPublicTypeInSignature || (fw.IsFinal && !classLoader.StrictFinalFieldSemantics && !(fw is ConstantFieldWrapper) && !(fw is DynamicPropertyFieldWrapper)))
return (fw.HasNonPublicTypeInSignature || (fw.IsFinal && !this.IsInterface && !classLoader.StrictFinalFieldSemantics && !(fw is ConstantFieldWrapper) && !(fw is DynamicPropertyFieldWrapper)))
&& (fw.IsPublic || (fw.IsProtected && !this.IsFinal))
&& (fw.FieldTypeWrapper.IsUnloadable || fw.FieldTypeWrapper.IsAccessibleFrom(this) || fw.FieldTypeWrapper.InternalsVisibleTo(this));
}