refit icon indicating copy to clipboard operation
refit copied to clipboard

[Bug]: "doesn't look like a Refit interface" when inheriting empty interface from interface with refit function

Open pagdot opened this issue 1 year ago • 2 comments

Describe the bug 🐞

Inheriting an empty interface from a base interface with refit methods causing it to not be detected. Seems like this issue occurs during roselyn code generation because no classes are generated for the derived interface(s)

Step to reproduce

using System;
using System.Threading;
using System.Threading.Tasks;
using Refit;
		
public interface IBaseService
{
    [Get("/resources")]
    Task<string> GetResource(string id);
}

public interface IDerivedServiceA : IBaseService
{
}

public class Program
{
	public static void Main()
	{
		var api = RestService.For<IDerivedServiceA>("https://example.com");
		Console.WriteLine(api.GetResource("abc"));
	}
}

(Tested at https://dotnetfiddle.net/ with refit package installed)

Reproduction repository

No response

Expected behavior

No error about doesn't look like a Refit interface. Provided example should only stumble when trying to do the actual API call because the api doesn't exist

Screenshots 🖼️

No response

IDE

Visual Studio 2022

Operating system

No response

Version

No response

Device

No response

Refit Version

7.0.0

Additional information ℹ️

Probably happens on other (older) versions too. Reproduced it with 7.0.0 in my minimal sample

pagdot avatar Apr 24 '24 14:04 pagdot