Skip to content

Commit 1f0656d

Browse files
committed
Add a test for an obvious-seeming (but not actually legal) kind of cast attempted in issue rust-lang#115, downgrade bug to an err in type.ml so you get a better message.
1 parent f1db420 commit 1f0656d

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

src/boot/me/type.ml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,7 @@ let check_stmt (cx:Semant.ctxt) : (fn_ctx -> Ast.stmt -> unit) =
261261
else
262262
LTYPE_poly ((Array.map (fun p -> p.Common.node) params), ty)
263263
| Ast.MOD_ITEM_type _ ->
264-
Common.bug
265-
()
266-
"internal_check_mod_item_decl: unexpected mod item type"
264+
Common.err None "Type-item used in non-type context"
267265
in
268266

269267
let rec internal_check_base_lval
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// error-pattern: non-type context
2+
type base =
3+
obj {
4+
fn foo();
5+
};
6+
obj derived() {
7+
fn foo() {}
8+
fn bar() {}
9+
}
10+
fn main() {
11+
let derived d = derived();
12+
let base b = base(d);
13+
}

0 commit comments

Comments
 (0)