kotlin - private visibility modifier and subpackages -


so started experimenting kotlin , stumbled upon this:

if top-level declaration marked private, private package it’s declared in (see visibility modifiers). since packages nest in kotlin, i.e. package foo.bar considered member of foo, if private in package, visible subpackages.

note members of outer packages not imported default, i.e. in file in package foo.bar can’t access members of foo without importing them. from: visibility , package nesting

so let's consider following example:

file1.kt

package foo  private fun bar() = println("this bar!!!") 

and file2.kt

package foo.baz  import foo.bar  fun main(args: array<string>) = bar() 

from understand function bar() should visible in package foo.baz , callable main(). when try compile above following error message:

error: kotlin: cannot access 'bar': 'private' in 'foo'

is bug or has spec of language been updated , documentation hasn't? missing something?

thanks in advance.

we have changed visibility rules recently, packages not nest more. not bug in compiler, in docs


Comments

Popular posts from this blog

Fail to load namespace Spring Security http://www.springframework.org/security/tags -

sql - MySQL query optimization using coalesce -

unity3d - Unity local avoidance in user created world -