Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Bug: Class/Struct in a namespace is converted to member in first class scope it is used

Abierto
#32 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
cpp, csharp
Área
tooling

Línea de trabajo

Use the supplied C++ reproducer as the starting test case and compare its generated C# output with the expected namespace placement. Trace how Foo is assigned when first referenced by Bar, then confirm Baz reuses the same libnative.Foo declaration rather than Bar.Foo.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Reproducer

    namespace ns {
        struct Foo { unsigned short _h; };
    } 
    class Bar { ns::Foo member_; };
    class Baz { ns::Foo member_; };

Issue

The struct Foo is defined as libnative.Bar.Foo instead of libnative.Foo as expected

using System;

namespace LibNative
{
    using System.Runtime.InteropServices;
    
    public static partial class libnative
    {
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public partial struct Bar
        {
            public libnative.Bar.Foo member_;
            
            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
            public partial struct Foo
            {
                public ushort _h;
            }
        }
        
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public partial struct Baz
        {
            public libnative.Bar.Foo member_;
        }
    }
}
Lenguaje dominante
C#
Estrellas
142
Forks
16
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de xoofx/CppAst.CodeGen

Todos los issues de xoofx/CppAst.CodeGen

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.