semantic/constant-reassignment-member.test \
semantic/constant-type-less-accessible.test \
semantic/constant-value.test \
+ semantic/constant-value-less-accessible.test \
semantic/constant-value-missing.test \
semantic/constant-value-type.test \
semantic/constant-void.test \
semantic/delete-unsupported.test \
semantic/element-access-index-invalid.test \
semantic/enum-empty.test \
+ semantic/enum-value-less-accessible.test \
semantic/errordomain-empty.test \
semantic/field-accessibility.test \
semantic/field-compact-static.test \
Report.error (value.source_reference, "Value must be constant");
return false;
}
+
+ // check whether initializer is at least as accessible as the constant
+ if (!value.is_accessible (this)) {
+ error = true;
+ Report.error (value.source_reference, "value is less accessible than constant `%s'", get_full_name ());
+ }
}
} else {
if (value != null) {
if (value != null) {
value.check (context);
+
+ // check whether initializer is at least as accessible as the enum value
+ if (!value.is_accessible (this)) {
+ error = true;
+ Report.error (value.source_reference, "value is less accessible than enum `%s'", parent_symbol.get_full_name ());
+ }
}
return !error;