if mvisibility == protected_visibility then
error(nvisibility, "Error: only properties can be protected.")
return
+ else if mvisibility == intrude_visibility then
+ error(nvisibility, "Error: intrude is not a legal visibility for classes.")
+ return
end
else if nclassdef isa ATopClassdef then
name = "Object"
private fun new_property_visibility(modelbuilder: ModelBuilder, nclassdef: AClassdef, nvisibility: nullable AVisibility): MVisibility
do
var mvisibility = public_visibility
- if nvisibility != null then mvisibility = nvisibility.mvisibility
+ if nvisibility != null then
+ mvisibility = nvisibility.mvisibility
+ if mvisibility == intrude_visibility then
+ modelbuilder.error(nvisibility, "Error: intrude is not a legal visibility for properties.")
+ mvisibility = public_visibility
+ end
+ end
if nclassdef.mclassdef.mclass.visibility == private_visibility then
if mvisibility == protected_visibility then
assert nvisibility != null
# See the License for the specific language governing permissions and
# limitations under the License.
-import kernel #alt1# private import kernel #alt2# protected import kernel
+import kernel #alt1# private import kernel #alt2# protected import kernel #alt7# intrude import kernel
-class A #alt3# private class A #alt4# protected class A
- fun foo #alt5# private fun foo #alt6# protected fun foo
+class A #alt3# private class A #alt4# protected class A #alt8# intrude class A
+ fun foo #alt5# private fun foo #alt6# protected fun foo #alt9# intrude fun foo
do
1.output
end
--- /dev/null
+alt/error_visibility_protected_alt8.nit:19,1--7: Error: intrude is not a legal visibility for classes.
--- /dev/null
+alt/error_visibility_protected_alt9.nit:20,2--8: Error: intrude is not a legal visibility for properties.