Xamarin - это система, которая полностью компилирует код .NET (AOT) для платформ, которые запрещают выполнение данных и поэтому не могут иметь JIT. Этот вопрос касается не Xamarin, а утверждения о том, что делает его документация. Он заявляет here:Статический анализ вызовов виртуального общего метода
Generic поддержка виртуальных методов ограничена, это не представляется возможным статически определить, какой метод будет вызываться при любых обстоятельствах, так что компилятор может оставить несколько из них.
Я мог ошибаться, но они, похоже, подразумевают широкое утверждение о том, что возможно здесь, посредством статического анализа, а не только того, что они выбрали для реализации в своем собственном программном обеспечении.
Как указал Ханс Пассант, пример, который они дают, фактически не демонстрирует проблему, о которой они имеют в виду, поэтому я исключил ее.
Таким образом, помимо этих, безусловно, неразрешимых особых случаев:
Отражение;
динамически сгенерированный код (в любом случае это незаконно);
патологические циклические ссылки в аргументах типа с использованием типов значений; и
зарубежные сборки;
Что могло бы сделать компилятор AOT неспособным обрабатывать виртуальный общий случай метода?