dotnet/roslyn

Duplicate (confusing) CS0455 error

Open

#5,053 建立於 2015年9月7日

在 GitHub 查看
 (0 留言) (0 反應) (0 負責人)C# (20,414 star) (4,257 fork)batch import
Area-CompilersBugConcept-Diagnostic Clarityhelp wanted

描述

using System;

public abstract class ThingWithOrganizationId
{
    public Guid OrganizationId;
}

public class Thing : ThingWithOrganizationId
{
}

public abstract class BaseService<TConstraint, U> 
{
    public abstract void Save<T> (T newThing) where T : struct, TConstraint;
}

public class DerivedService:BaseService<Thing, X>
{
    public override void Save<TThing>(TThing newThing)
    {
        Console.WriteLine(newThing.OrganizationId);
    }

    static void Main ()
    {
    }
}

Roslyn csc produces following errors (24,31): error CS0455: Type parameter 'TThing' inherits conflicting constraints 'Thing' and 'ValueType' (24,31): error CS0455: Type parameter 'TThing' inherits conflicting constraints 'ValueType' and 'struct'

It should print something like this instead (24,31): error CS0455: Type parameter 'TThing' inherits conflicting constraints 'Thing' and 'struct'

貢獻者指南

Duplicate (confusing) CS0455 error · dotnet/roslyn#5053 | Good First Issue