Regex sourcegen fails with CS0759 when member inside file scoped class

Abierto
#136,754 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

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
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
compilers

Línea de trabajo

The payload gives a reproduction using the GeneratedRegex attribute on a partial method inside a static file partial class, which produces CS0759. Start by reproducing it with that snippet and finding where the regex source generator emits the partial method implementation. Done means a clearer diagnostic for file-scoped containing types, or a documented limitation, with a test covering the case.

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

Descripción

area-System.Text.RegularExpressions untriaged
Description

like for #57880 the regex source generator errors out with "No defining declaration found for implementing declaration of partial method", which is technically right, just that maybe a more to the point error message could help finding out that this can't work with a file scoped class

Reproduction Steps
static file partial class sfpc
{
    [GeneratedRegex("[^a-zA-Z0-9\\.\\-_]", RegexOptions.Compiled | RegexOptions.ECMAScript)]
    private static partial Regex GetSanitizeRx();
}
Expected behavior

warn user about file scoped class

Actual behavior

error CS0759

Regression?

i don't think so, it's the same on net7 and net10

Known Workarounds

No response

Configuration

windows up to date, vs up to date, x64

Other information

No response

Lenguaje dominante
C#
Estrellas
18.4k
Forks
5.8k
Merge medio
2 d 13 h
PR fusionados (30 d)
588

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

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 dotnet/runtime

Todos los issues de dotnet/runtime

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.