You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Create a report related to nullable reference types handling
4
+
labels: [Bug, Needs-Triage,Area-Nullness]
5
+
assignees: 'T-Gro'
6
+
body:
7
+
- type: textarea
8
+
attributes:
9
+
label: Issue description
10
+
description: A concise description of what you're experiencing.
11
+
validations:
12
+
required: true
13
+
- type: markdown
14
+
attributes:
15
+
value: |
16
+
Please check at [Nullable Reference Types RFC](https://github.com/fsharp/fslang-design/blob/main/RFCs/FS-1060-nullable-reference-types.md) if this issue isn't a known limitation, such as missing flow-control analysis after branching constructs like `if` or `while`. Also check at [existing nullness issues](https://github.com/dotnet/fsharp/issues?q=is%3Aissue+label%3AArea-Nullness+) if it hasn't been reported already.
17
+
Please provide a succinct description of the issue and choose 1 or more from the following categories of impact
18
+
- type: checkboxes
19
+
id: categories
20
+
attributes:
21
+
label: Choose one or more from the following categories of impact
22
+
options:
23
+
- label: Unexpected nullness warning (false positive in nullness checking, code uses --checknulls and langversion:preview).
24
+
- label: Missing nullness warning in a case which can produce nulls (false negative, code uses --checknulls and langversion:preview).
25
+
- label: Breaking change related to older `null` constructs in code not using the checknulls switch.
26
+
- label: Breaking change related to generic code and explicit type constraints (`null`, `not null`).
27
+
- label: Type inference issue (i.e. code worked without type annotations before, and applying the --checknulls enforces type annotations).
28
+
- label: C#/F# interop issue related to nullness metadata.
29
+
- label: Other (none of the categories above apply).
30
+
validations:
31
+
required: true
32
+
- type: dropdown
33
+
id: os
34
+
attributes:
35
+
label: Operating System
36
+
description: What operating system are you running?
37
+
options:
38
+
- Windows (Default)
39
+
- Linux
40
+
- macOS
41
+
default: 0
42
+
validations:
43
+
required: true
44
+
- type: dropdown
45
+
id: dotnet-kind
46
+
attributes:
47
+
label: What .NET runtime/SDK kind are you seeing the issue on
48
+
multiple: false
49
+
options:
50
+
- .NET SDK (.NET Core, .NET 5+)
51
+
- .NET Framework
52
+
default: 0
53
+
validations:
54
+
required: true
55
+
- type: input
56
+
id: dotnet-version
57
+
attributes:
58
+
label: .NET Runtime/SDK version
59
+
placeholder: e.g. .NET 9 or .NET SDK 9.0.100
60
+
- type: textarea
61
+
attributes:
62
+
label: Reproducible code snippet and actual behavior
63
+
description: |
64
+
Provide a small code snippet demonstrating the issue. |
65
+
If referenced code is needed for the repro and cannot be shared (e.g. a private C# nuget package), try to share at least the metadata annotations from the called type+member as seen in `ilspy.exe`. C# compiler produces attributes like `[Nullable]` and `[NullableContext]`, which is what F# compiler tries to load and interpret in C#/F# interop scenarios.
66
+
placeholder: Code snippet
67
+
validations:
68
+
required: false
69
+
- type: textarea
70
+
attributes:
71
+
label: Possible workarounds
72
+
description: |
73
+
Are there any language constructs (typically pattern matching, library constructs, Null/NonNull active patterns, explicit type annotations) allowing the same logic be expressed differently in order to mitigate the experienced nullness issue?
0 commit comments