Revert "Revert "Forbid classes with no fields" due to test failures"
This reverts commit e56a6e8cb0.
This commit is contained in:
parent
a6c92f0a17
commit
5e8ef74e22
2 changed files with 15 additions and 0 deletions
|
|
@ -387,6 +387,12 @@ fn check_item(ccx: @crate_ctxt, it: @ast::item) {
|
|||
};
|
||||
// typecheck the members
|
||||
for members.each {|m| check_class_member(class_ccx, class_t, m); }
|
||||
// Check that there's at least one field
|
||||
let (fields,_) = split_class_items(members);
|
||||
if fields.len() < 1u {
|
||||
ccx.tcx.sess.span_err(it.span, "A class must have at least one \
|
||||
field");
|
||||
}
|
||||
// Check that the class is instantiable
|
||||
check_instantiable(ccx.tcx, it.span, it.id);
|
||||
}
|
||||
|
|
|
|||
9
src/test/compile-fail/issue-2509-a.rs
Normal file
9
src/test/compile-fail/issue-2509-a.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
class c { //! ERROR A class must have at least one field
|
||||
new() { }
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let a = c();
|
||||
let x = [a];
|
||||
let _y = x[0];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue