|
@@ -963,6 +963,9 @@ and parse_class_field tdecl s =
|
|
|
| [< '(Kwd Final,p1) >] ->
|
|
|
check_redundant_var p1 s;
|
|
|
begin match s with parser
|
|
|
+ | [< opt,name = questionable_dollar_ident; '(POpen,_); i1 = property_ident; '(Comma,_); i2 = property_ident; '(PClose,_); t = popt parse_type_hint; e,p2 = parse_var_field_assignment >] ->
|
|
|
+ let meta = check_optional opt name in
|
|
|
+ name,punion p1 p2,FProp(i1,i2,t,e),(al @ [AFinal,p1]),meta
|
|
|
| [< opt,name = questionable_dollar_ident; t = popt parse_type_hint; e,p2 = parse_var_field_assignment >] ->
|
|
|
let meta = check_optional opt name in
|
|
|
name,punion p1 p2,FVar(t,e),(al @ [AFinal,p1]),meta
|
|
@@ -1235,6 +1238,8 @@ and parse_array_decl p1 s =
|
|
|
and parse_var_decl_head final s =
|
|
|
let meta = parse_meta s in
|
|
|
match s with parser
|
|
|
+ | [< name, p = dollar_ident; '(POpen,p1); _ = property_ident; '(Comma,_); _ = property_ident; '(PClose,p2); t = popt parse_type_hint >] ->
|
|
|
+ syntax_error (Custom "Cannot define property accessors for local vars") ~pos:(Some (punion p1 p2)) s (meta,name,final,t,p)
|
|
|
| [< name, p = dollar_ident; t = popt parse_type_hint >] -> (meta,name,final,t,p)
|
|
|
| [< >] ->
|
|
|
(* This nonsense is here for the var @ case in issue #9639 *)
|