VB -> C#: omitted parentheses cause conversion failures in delegates and custom-event raise accessors
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 62/100
Línea de trabajo
Start in the DeclarationNodeVisitor.VisitDelegateStatement path, where a null parameter list reaches SyntaxFactory.DelegateDeclaration; supply an empty C# parameter list as ordinary methods already do. Then check how a parameterless RaiseEvent accessor is converted so that the On<EventName>() method is not dropped. Done when both VB inputs with and without parentheses produce identical C# output, matching the expected delegate lines.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
VB.Net input code
Public Delegate Sub Callback
Public Delegate Function Provider As Integer
Erroneous output
Cannot convert DelegateStatementSyntax, CONVERSION ERROR:
Value cannot be null. (Parameter 'parameterList')
at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.DelegateDeclaration(...)
at ICSharpCode.CodeConverter.CSharp.DeclarationNodeVisitor.VisitDelegateStatement(...)
Expected output
public delegate void Callback();
public delegate int Provider();
Details
- Product in use: VS extension, built locally from master.
- Version in use: 10.0.1, local development build.
- Did you see it working in a previous version, which? No.
- Related to #1296: VB.NET permits parameterless delegate declarations without parentheses. Adding
()afterCallbackorProvideravoids the failure, but both forms should convert identically. - The delegate visitor passes a null parameter list to the C# syntax factory when parentheses are omitted. Supplying an empty C# parameter list resolves the issue, consistent with the existing handling for ordinary methods and external declarations.
- The same problem also affects a custom event's parameterless
RaiseEventaccessor when declared without parentheses. In that case, the generated C# event is retained, but its correspondingOn<EventName>()method is silently omitted.
- Lenguaje dominante
- C#
- Estrellas
- 917
- Forks
- 243
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 9
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 icsharpcode/CodeConverter
-
VB -> C#
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
icsharpcode/CodeConverter#1301 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
icsharpcode/CodeConverter#1271 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
VB -> C#: Generic extension method inference widens element types when using a base-type comparerAbiertoVB -> C#
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
icsharpcode/CodeConverter#1302 ·
Los mantenedores suelen responder en 3 días
-
VB -> C#
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
icsharpcode/CodeConverter#1300 ·
Los mantenedores suelen responder en 3 días
-
VB -> C#
Dificultad 3/5 1-2 días Aptitud para principiantes 62/100
icsharpcode/CodeConverter#1299 ·
Los mantenedores suelen responder en 3 días
Todos los issues de icsharpcode/CodeConverter
Issues similares
-
needs-area-label
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 2 días
-
bug github_actions
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
endercodezz/BYDLO#336 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
SubtitleEdit/subtitleedit#16638 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
sebastienros/jint#4449 ·
Los mantenedores suelen responder en 1 día