File tree Expand file tree Collapse file tree 3 files changed +12
-2
lines changed
compiler/src/dotty/tools/dotc/core
tests/explicit-nulls/flexible-unpickle Expand file tree Collapse file tree 3 files changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -58,8 +58,9 @@ object JavaNullInterop {
5858 // assert(sym.is(JavaDefined), "can only nullify java-defined members")
5959
6060 // Some special cases when nullifying the type
61- if isEnumValueDef || sym.name == nme.TYPE_ then
62- // Don't nullify the `TYPE` field in every class and Java enum instances
61+ if isEnumValueDef || sym.name == nme.TYPE_ // Don't nullify the `TYPE` field in every class and Java enum instances
62+ || sym.is(Flags .ModuleVal ) // Don't nullify Modules
63+ then
6364 tp
6465 else if sym.name == nme.toString_ || sym.isConstructor || hasNotNullAnnot(sym) then
6566 // Don't nullify the return type of the `toString` method.
Original file line number Diff line number Diff line change 1+ import unsafeNulls .Foo .*
2+ import unsafeNulls .Unsafe_1
3+
14@ main
25def Flexible_2 () =
36 val s2 : String | Null = " foo"
Original file line number Diff line number Diff line change 1+ package unsafeNulls
2+
13class Unsafe_1 {
24 def foo (s : String ): String = {
35 if (s == null ) then " nullString"
46 else s
57 }
68}
9+
10+ object Foo {
11+ def bar = " bar!"
12+ }
You can’t perform that action at this time.
0 commit comments