C#: an interface's nested types are printed unqualified outside the interface (CS0246)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
Línea de trabajo
Start in CSharpTypeName.name around lines 507–518 and compare its qualification logic with CSharpTypeName.inHeader, which the issue says emits the expected qualified names for the lambda adapter. Reproduce the reported Plain and Use cases or use the PromptTemplateFactory corpus example; done means generated C# qualifies nested interface types as IFactory.ITemplate and IFactory.IInput so the reported compiler errors are resolved.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Found while adding the variance tests (ws/maddi-csharp, after b13471627). A class that names a nested type of an interface prints the simple name, which C# does not resolve outside the interface:
interface Factory {
interface Input { }
interface Template { }
Template create(Input in);
}
class Plain implements Factory {
public Template create(Input in) { return null; } // Java: member types inherited from the interface
}
class Use {
static Factory make(Factory.Template t) { return in -> t; } // Java: explicitly qualified
}
prints
internal sealed class Plain : IFactory { public ITemplate Create(IInput @in) => null; } // CS0246 ×2, CS0535
internal sealed class Use { internal static IFactory Make(ITemplate t) => new FactoryLambda(@in => t); } // CS0246
Expected IFactory.ITemplate / IFactory.IInput, as the lambda adapter beside the interface now prints them (CSharpTypeName.inHeader). C# does not inherit member types from interfaces, so an implementing class needs the qualification as much as an unrelated one. Probably the Qualification treating the nested types as in scope by their simple name; CSharpTypeName.name lines ~507-518.
In the corpus: dev/langchain4j/spi/prompt/PromptTemplateFactory (IInput, ITemplate).
- Lenguaje dominante
- Java
- Estrellas
- 1
- Forks
- 1
- Merge medio
- 1 h 13 min
- PR fusionados (30 d)
- 6
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CodeLaser/maddi
-
Javadoc warnings are the only noise on an otherwise clean CI runPosiblemente ocupada @jayeshamundkar06-bit la tomó hace 4 días. Abiertobuild/ci good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
CodeLaser/maddi#4 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 61/100
CodeLaser/maddi#185 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 14/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
Todos los issues de CodeLaser/maddi
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
googleads/googleads-mobile-flutter#1541 ·
Los mantenedores suelen responder en 4 días
-
Keyboard crashes Chrome tabsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Julow/Unexpected-Keyboard#1490 ·
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
Vakore/ZappierGames#275 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
unitycatalog/unitycatalog#2148 ·
Los mantenedores suelen responder en 2 días
-
enhancement priority: low
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
Riptide-Labs/riptide#1060 ·
Los mantenedores suelen responder en 1 día