@@ -1976,6 +1976,7 @@ and parseFirstClassModuleExpr ~startPos p =
1976
1976
1977
1977
and parseBracketAccess p expr startPos =
1978
1978
Parser. leaveBreadcrumb p Grammar. ExprArrayAccess ;
1979
+ let lbracket = p.startPos in
1979
1980
Parser. expect Lbracket p;
1980
1981
let stringStart = p.startPos in
1981
1982
match p.Parser. token with
@@ -2008,18 +2009,20 @@ and parseBracketAccess p expr startPos =
2008
2009
let accessExpr = parseConstrainedOrCoercedExpr p in
2009
2010
Parser. expect Rbracket p;
2010
2011
Parser. eatBreadcrumb p;
2012
+ let rbracket = p.prevEndPos in
2013
+ let arrayLoc = mkLoc lbracket rbracket in
2011
2014
match p.token with
2012
2015
| Equal ->
2013
2016
Parser. leaveBreadcrumb p ExprArrayMutation ;
2014
2017
Parser. next p;
2015
2018
let rhsExpr = parseExpr p in
2016
2019
let arraySet =
2017
- Location. mknoloc (Longident. Ldot (Lident " Array" , " set" ))
2020
+ Location. mkloc (Longident. Ldot (Lident " Array" , " set" )) arrayLoc
2018
2021
in
2019
2022
let endPos = p.prevEndPos in
2020
2023
let arraySet =
2021
2024
Ast_helper.Exp. apply ~loc: (mkLoc startPos endPos)
2022
- (Ast_helper.Exp. ident arraySet)
2025
+ (Ast_helper.Exp. ident ~loc: arrayLoc arraySet)
2023
2026
[(Nolabel , expr); (Nolabel , accessExpr); (Nolabel , rhsExpr)]
2024
2027
in
2025
2028
Parser. eatBreadcrumb p;
@@ -2028,8 +2031,8 @@ and parseBracketAccess p expr startPos =
2028
2031
let endPos = p.prevEndPos in
2029
2032
let e =
2030
2033
Ast_helper.Exp. apply ~loc: (mkLoc startPos endPos)
2031
- (Ast_helper.Exp. ident
2032
- (Location. mknoloc (Longident. Ldot (Lident " Array" , " get" ))))
2034
+ (Ast_helper.Exp. ident ~loc: arrayLoc
2035
+ (Location. mkloc (Longident. Ldot (Lident " Array" , " get" )) arrayLoc ))
2033
2036
[(Nolabel , expr); (Nolabel , accessExpr)]
2034
2037
in
2035
2038
parsePrimaryExpr ~operand: e p)
0 commit comments