VB -> C#: omitted parentheses cause conversion failures in delegates and custom-event raise accessors
Les mainteneurs répondent en général sous 3 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 62/100
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- C#
- Étoiles
- 916
- Forks
- 242
- Merge moyen
- 2 j 15 h
- PR mergées (30 j)
- 9
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de icsharpcode/CodeConverter
-
VB -> C#
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
icsharpcode/CodeConverter#1301 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
icsharpcode/CodeConverter#1271 · 1 commentaire ·
Les mainteneurs répondent en général sous 3 jours
-
VB -> C#: Generic extension method inference widens element types when using a base-type comparerOuverteVB -> C#
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
icsharpcode/CodeConverter#1302 ·
Les mainteneurs répondent en général sous 3 jours
-
VB -> C#
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
icsharpcode/CodeConverter#1300 ·
Les mainteneurs répondent en général sous 3 jours
-
VB -> C#
Difficulté 3/5 1-2 jours Accessibilité débutants 62/100
icsharpcode/CodeConverter#1299 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de icsharpcode/CodeConverter
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Facepunch/sbox-public#12284 ·
Les mainteneurs répondent en général sous 6 jours
-
bug untriaged
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
CarlosAdrianM/Nesto#610 ·
-
[bug-bash] print maps a missing item's HTTP 404 to exit 1 instead of documented not-found exit 5Ouvertebug bug-bash
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Azure/CosmosDBShell#279 ·
Les mainteneurs répondent en général sous 1 jour