I didn't get any responses to my previous email (sorry if I came across as impatient), but I would like to reiterate my suggestion of a ‘scoped’ keyword, since it seems like it would solve many of the issues people have with other solutions:
private var foo
scoped private var foo
internal var foo
scoped internal var foo
public var foo
scoped public var foo
This can then be used with all existing access levels, with no breaking changes.
Am I missing a use case, or would this be suitable?
file private var foo //breaking change
private(scoped) var foo //conflicts with private(set)
private(file) var foo //same conflict
From James F