Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Странная ошибка компиляции

#c_sharp #visual_studio #visual_studio_2010


Привет, Хэшкод!
Сегодня натолкнулся на совершенно непонятную ошибку, возникающую при компиляции следующего
кода.
using System;

public class Tree : IComparable>
{
    public int CompareTo(Tuple other)
    {
        return 0;
    }
}


Ошибка при обработке сборки
"Model.dll": Введенное число общих
аргументов не соответствует арности
определения общего типа. Имя
параметра: instantiation

Причём возникает она только в моём проекте. Этот же код в пустом проекте компилируется
успешно. Так же замена Tuple на Tuple да и на множество других параметров
тоже приводит к успешной компиляции.    


Ответы

Ответ 1



Эта ошибка компиляции вызвана багом в фиче Private Accessors в Unit Test Project в старых версиях студии. Падает на стадии постпроцессинга сборки, при попытке сгенерировать аццессоры для приватных свойств класса Tree, или для классов, использующих Tree. Этот баг в connect - won't fix. Фича Private Accessors не поддерживается еще со времен 2010-й студии, так что если вы ее еще испльзуете - самое время пересмотреть архитектуру и перейти на моки для тестирования.

Комментариев нет:

Отправить комментарий