HaxeFoundation / HaxeFoundation/haxe
[nullsafety] constant object literals with nullable fields
Open
enhancement
feature-null-safety
- Dominant language
- Haxe
- Stars
- 6.9k
- Forks
- 715
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 11
Description
Null safety is smart enough to detect that `a` can never be null here despite being declared as `Null`, so this compiles:
```haxe
var a:Null> = [];
a.push(0);
```
Consequently, this should also compile:
```haxe
@:nullSafety
class Main {
static function main() {
var s:Struct = {
values: []
}
s.values.push(0); // Null safety: Cannot access "push" of a nullable value.
}
}
typedef Struct = {
?values:Array
}
```
Contributor guide
Assessment
This issue has not been assessed yet.