VB -> C#: omitted parentheses cause conversion failures in delegates and custom-event raise accessors
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 62/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- C#
- Stelle
- 916
- Fork
- 242
- Merge medio
- 2g 15h
- PR unite (30g)
- 9
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di icsharpcode/CodeConverter
-
VB -> C#
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
icsharpcode/CodeConverter#1301 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
icsharpcode/CodeConverter#1271 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
VB -> C#: Generic extension method inference widens element types when using a base-type comparerApertaVB -> C#
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
icsharpcode/CodeConverter#1302 ·
I maintainer di solito rispondono entro 3 giorni
-
VB -> C#
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
icsharpcode/CodeConverter#1300 ·
I maintainer di solito rispondono entro 3 giorni
-
VB -> C#
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
icsharpcode/CodeConverter#1299 ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di icsharpcode/CodeConverter
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Facepunch/sbox-public#12284 ·
I maintainer di solito rispondono entro 6 giorni
-
bug untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
CarlosAdrianM/Nesto#610 ·
-
[bug-bash] print maps a missing item's HTTP 404 to exit 1 instead of documented not-found exit 5Apertabug bug-bash
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Azure/CosmosDBShell#279 ·
I maintainer di solito rispondono entro 1 giorno