mbonnin
03/15/2021, 6:38 PMinternal
classes from a library I have no control over? Or is that forever forbidden?dmitriy.novozhilov
03/15/2021, 6:43 PMinternal
modifier. But if you want to do it very much then you can call internal
from kotlin library from java code (java doesn't know anything about internal
and see such declarations as public
)mbonnin
03/15/2021, 6:46 PMMarc Knaup
03/15/2021, 6:51 PM@Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE")
dmitriy.novozhilov
03/15/2021, 7:02 PMMarc Knaup
03/15/2021, 7:05 PMkotlin.internal.*
annotations available publicly 😛dmitriy.novozhilov
03/15/2021, 7:08 PMmbonnin
03/15/2021, 7:10 PMdmitriy.novozhilov
03/15/2021, 7:12 PMMarc Knaup
03/15/2021, 7:13 PMLowPriorityInOverloadResolution
to resolve conflicts in DSL.
Sometimes OnlyInputTypes
but I understood that it’s a workaround for a temporary compiler limitation.
Sometimes InlineOnly
but I think I still don’t fully understand it.
I have used NoInfer
and Exact
in the past but have to check if I’m still doing so.
EDIT: Just checked.
• Plenty uses of LowPriorityInOverloadResolution
.
• OnlyInputTypes
only for custom assert…
funs.
• Plenty of InlineOnly
with the idea of reducing output size by allowing inline-only uses. Probably not working that way either.
• I don’t use any other internal annotations.Marc Knaup
03/15/2021, 7:18 PMMarc Knaup
03/15/2021, 7:19 PMdmitriy.novozhilov
03/16/2021, 6:16 AMturansky
03/18/2021, 2:56 AMWe are planning to forbid error suppressing someday.For now it’s death for non-
leftpad
declarations (for stdlib-js
too)dmitriy.novozhilov
03/18/2021, 6:21 AMWe are planning to forbid error suppressing someday.This will happen only after we fix all cases where such suppression are needed and there is no workaround with other language constructs
Youssef Shoaib [MOD]
03/18/2021, 6:22 PMdmitriy.novozhilov
03/18/2021, 6:27 PM