Browse Source

better error message for missing abstract modifier
on functions in abstract classes (closes #10023)

Aleksandr Kuzmenko 4 years ago
parent
commit
f3cd560e6d
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/typing/typeloadFunction.ml

+ 4 - 1
src/typing/typeloadFunction.ml

@@ -66,7 +66,10 @@ let type_function ctx (args : function_arguments) ret fmode e do_display p =
 				*)
 				EBlock [],p
 			else
-				error "Function body required" p
+				if fmode = FunMember && has_class_flag ctx.curclass CAbstract then
+					error "Function body or abstract modifier required" p
+				else
+					error "Function body required" p
 		| Some e -> e
 	in
 	let is_position_debug = Meta.has (Meta.Custom ":debug.position") ctx.curfield.cf_meta in