Неправильно определяется область видимости для internal
От: Mumitroller Беларусь  
Дата: 05.08.11 15:37
Оценка:
Вот такой код в двух сборках.

ClassLibrary1:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ConsoleApplication1")]
internal enum InternalEnum
{
}

ConsoleApplication1:
module Program
{
  internal Foo(_ : InternalEnum) : void // <=== Error: Method `Foo' is more accessible than `InternalEnum'
  {
  }
}


Если у Foo область видимости private — то скомпилируется (это правильно). Если public или protected — то будет такая же ошибка компиляции (это тоже правильно). В случае internal я ожидаю, что тоже все скомпилируется, как это происходит в c#.

Пример на c#.

ClassLibrary1:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ConsoleApplication1")]
internal enum InternalEnum
{
}

ConsoleApplication1:
public static class Program
{
    internal static void Foo(InternalEnum arg)
    {
    }
}

Mumitroller
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.