package Ġcom . live front . sealed enum . errors Ċ Ċ import Ġcom . live front . sealed enum . testing . assert Fails Ċ import Ġcom . live front . sealed enum . testing . compile Ċ import Ġcom . tsch uch ort . compile testing . SourceFile Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠNon Object Errors Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` direct Ġchild Ġfails Ġwith Ġnon Ġobject Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Language (" kotlin ") ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . live front . sealed enum . Gen Se aled Enum ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġsealed Ġclass ĠNon Object Se aled Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠNon Object Ġ: ĠNon Object Se aled Class () ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Gen Se aled Enum ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompanion Ġobject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcompile ( SourceFile . kotlin (" Non Object Se aled Class . kt ", Ġsource )) ĊĊĠĠĠĠĠĠĠ Ġassert Fails ( result ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . messages . contains (" Annotated Ġsealed Ġclass Ġhas Ġa Ġnon - object Ġsubclass ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` first Ġlevel Ġchild Ġfails Ġwith Ġnon Ġobject Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Language (" kotlin ") ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . live front . sealed enum . Gen Se aled Enum ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġsealed Ġclass ĠNon Object Se aled Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject ĠFirst Object Ġ: ĠNon Object Se aled Class () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsealed Ġclass ĠInner Se aled Class Ġ: ĠNon Object Se aled Class () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġclass ĠNon Object ( val Ġunit : ĠUnit ) Ġ: ĠInner Se aled Class () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Gen Se aled Enum ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompanion Ġobject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcompile ( SourceFile . kotlin (" Non Object Se aled Class . kt ", Ġsource )) ĊĊĠĠĠĠĠĠĠ Ġassert Fails ( result ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . messages . contains (" Annotated Ġsealed Ġclass Ġhas Ġa Ġnon - object Ġsubclass ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` second Ġlevel Ġchild Ġfails Ġwith Ġnon Ġobject Ġerror `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Language (" kotlin ") ĊĠĠĠĠĠĠĠ Ġval Ġsource Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġcom . live front . sealed enum . Gen Se aled Enum ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġsealed Ġclass ĠNon Object Se aled Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject ĠFirst Object Ġ: ĠNon Object Se aled Class () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsealed Ġclass ĠFirst Inner Se aled Class Ġ: ĠNon Object Se aled Class () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject ĠSecond Object Ġ: ĠFirst Inner Se aled Class () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsealed Ġclass ĠSecond Inner Se aled Class Ġ: ĠFirst Inner Se aled Class () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠNon Object ( val Ġunit : ĠUnit ) Ġ: ĠSecond Inner Se aled Class () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Gen Se aled Enum ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcompanion Ġobject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcompile ( SourceFile . kotlin (" Non Object Se aled Class . kt ", Ġsource )) ĊĊĠĠĠĠĠĠĠ Ġassert Fails ( result ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( result . messages . contains (" Annotated Ġsealed Ġclass Ġhas Ġa Ġnon - object Ġsubclass ")) ĊĠĠĠ Ġ} Ċ } Ċ