Commit 73cfbce
Fix #12796: proper diagnostic for invalid custom attribute array element types
Previously, using an array of a user-defined type as a custom attribute
argument (e.g. [<DefaultValue([||] : A[])>]) caused an internal error
FS0192 in encodeCustomAttrElemType. The ECMA 335 metadata format requires
the array element type to be encoded even for empty arrays, and only
primitive types, enums, string, System.Type, and System.Object are valid.
This change adds a validation check in GenAttribArg (IlxGen.fs) that
detects unsupported element types before reaching the IL writer, and
reports a proper diagnostic (FS3885) instead of crashing.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 40e815c commit 73cfbce
17 files changed
Lines changed: 124 additions & 26 deletions
File tree
- docs/release-notes/.FSharp.Compiler.Service
- src/Compiler
- CodeGen
- xlf
- tests/FSharp.Compiler.ComponentTests/Language
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10223 | 10223 | | |
10224 | 10224 | | |
10225 | 10225 | | |
| 10226 | + | |
| 10227 | + | |
| 10228 | + | |
| 10229 | + | |
| 10230 | + | |
| 10231 | + | |
| 10232 | + | |
| 10233 | + | |
| 10234 | + | |
| 10235 | + | |
| 10236 | + | |
| 10237 | + | |
10226 | 10238 | | |
10227 | 10239 | | |
10228 | 10240 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1814 | 1814 | | |
1815 | 1815 | | |
1816 | 1816 | | |
| 1817 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments