dotnet/roslyn

Duplicate (confusing) CS0455 error

Open

#5 053 ouverte le 7 sept. 2015

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)C# (4 257 forks)batch import
Area-CompilersBugConcept-Diagnostic Clarityhelp wanted

Métriques du dépôt

Stars
 (20 414 stars)
Métriques de merge PR
 (Merge moyen 6j 17h) (256 PRs mergées en 30 j)

Description

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'

Guide contributeur