Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Speedup conversion time for code without "MyClass" and "WithEvents / Handles"

Aberta
#1,090 3 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Refatoração
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
csharp
Domínio
performance, tooling

Direção de pesquisa

Comece em DeclarationNodeVisitor.cs, especialmente em GetMyClassAccessedNames e GetMethodWithHandlesAsync, e compare o comportamento ativo com os caminhos de análise comentados mostrados na issue. Determine se essas análises podem ser alteradas com segurança sem quebrar a conversão de MyClass ou WithEvents/Handles e, em seguida, verifique tanto a correção da conversão quanto a melhoria relatada no tempo de conversão.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Hi, I am looking for a way to speed up my conversion time.

I looked at ours overall busniness code and we only have a few utilisation of the key words "MyClass" and "WithEvents / Handles" that we can take care manually.

I would like to know your advice, if we could safely remove the following from DeclarationNodeVisitor.cs, as it's seems to cut in half (if not more) the time it takes to convert, especially the WithEvents / Handles part.

MyClass

    private static HashSet<string> GetMyClassAccessedNames(VBSyntax.ClassBlockSyntax classBlock)
    {
        //var memberAccesses = classBlock.DescendantNodes().OfType<VBSyntax.MemberAccessExpressionSyntax>();
        //var accessedTextNames = new HashSet<string>(memberAccesses
            //.Where(mae => mae.Expression is VBSyntax.MyClassExpressionSyntax)
            //.Select(mae => mae.Name.Identifier.Text), StringComparer.OrdinalIgnoreCase);
        //return accessedTextNames;
        return new HashSet<string>();
    }

WithEvents / Handles

    private async Task<HandledEventsAnalysis> GetMethodWithHandlesAsync(VBSyntax.TypeBlockSyntax parentType, IMethodSymbol designerGeneratedInitializeComponentOrNull)
    {
        //if (parentType == null || _semanticModel.GetDeclaredSymbol((SyntaxNode)parentType) is not INamedTypeSymbol containingType) {
        return new HandledEventsAnalysis(CommonConversions, null, Array.Empty<(HandledEventsAnalysis.EventContainer EventContainer, (IPropertySymbol Property, bool IsNeverWrittenOrOverridden) PropertyDetails, (EventDescriptor Event, IMethodSymbol HandlingMethod, int ParametersToDiscard)[] HandledMethods)>());
        //}
        //return await HandledEventsAnalyzer.AnalyzeAsync(CommonConversions, containingType, designerGeneratedInitializeComponentOrNull, _typeToInheritors);
    }

Thank you

Linguagem predominante
C#
Estrelas
913
Forks
244
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de icsharpcode/CodeConverter

Todas as issues de icsharpcode/CodeConverter

Issues semelhantes

Mais issues de C#

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.