Only the regression test
diff --git a/tests/functional/d/dataclass/dataclass_generic_init_subclass.py b/tests/functional/d/dataclass/dataclass_generic_init_subclass.py
new file mode 100644
index 0000000..59cd6ec
--- /dev/null
+++ b/tests/functional/d/dataclass/dataclass_generic_init_subclass.py
@@ -0,0 +1,40 @@
+"""Test for issue #10519: Crash with generic dataclass that has __init_subclass__"""
+
+from abc import ABC
+from collections.abc import Callable
+from dataclasses import dataclass, field
+from typing import ParamSpec
+
+_P = ParamSpec("_P")
+
+
+@dataclass
+class Foo[T](ABC):
+    """A generic dataclass with __init_subclass__ that modifies __init__"""
+
+    _foo: T | None = field(init=False)
+    _bar: dict[str, str] = field(init=False)
+
+    def __init_subclass__(cls) -> None:
+        def _wrap(func: Callable[_P, None]) -> Callable[_P, None]:
+            def _w(*args: _P.args, **kwds: _P.kwargs) -> None:
+                self = args[0]
+                func(*args, **kwds)
+                if not hasattr(self, "_foo"):
+                    object.__setattr__(self, "_foo", None)
+                if not hasattr(self, "_bar"):
+                    object.__setattr__(self, "_bar", {})
+
+            return _w
+
+        cls.__init__ = _wrap(cls.__init__)  # type: ignore[method-assign]
+
+
+@dataclass
+class Bar(Foo):
+    """A subclass of the generic dataclass without type parameter"""
+
+
+@dataclass
+class Baz(Foo[str]):
+    """A subclass of the generic dataclass with type parameter"""
diff --git a/tests/functional/d/dataclass/dataclass_generic_init_subclass.txt b/tests/functional/d/dataclass/dataclass_generic_init_subclass.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/functional/d/dataclass/dataclass_generic_init_subclass.txt