PropertyExpected for map literal with interpolated key.
This commit is contained in:
parent
26bb88974a
commit
00784d39ad
@ -710,6 +710,7 @@ fn parse_map_literal(
|
||||
}
|
||||
(s, pos)
|
||||
}
|
||||
(Token::InterpolatedString(_), pos) => return Err(PERR::PropertyExpected.into_err(pos)),
|
||||
(Token::Reserved(s), pos) if is_valid_identifier(s.chars()) => {
|
||||
return Err(PERR::Reserved(s).into_err(pos));
|
||||
}
|
||||
|
@ -35,8 +35,21 @@ fn test_map_indexing() -> Result<(), Box<EvalAltResult>> {
|
||||
engine.eval::<INT>("let y = #{a: 1, b: 2, c: 3}; y.a = 5; y.a")?,
|
||||
5
|
||||
);
|
||||
|
||||
engine.eval::<()>("let y = #{a: 1, b: 2, c: 3}; y.z")?;
|
||||
|
||||
assert_eq!(
|
||||
engine.eval::<INT>(r#"let y = #{`a\nb`: 1}; y["a\\nb"]"#)?,
|
||||
1
|
||||
);
|
||||
|
||||
assert!(matches!(
|
||||
*engine
|
||||
.eval::<INT>("let y = #{`a${1}`: 1}; y.a1")
|
||||
.expect_err("should error"),
|
||||
EvalAltResult::ErrorParsing(ParseErrorType::PropertyExpected, _)
|
||||
));
|
||||
|
||||
assert!(engine.eval::<bool>(r#"let y = #{a: 1, b: 2, c: 3}; "c" in y"#)?);
|
||||
assert!(engine.eval::<bool>(r#"let y = #{a: 1, b: 2, c: 3}; "b" in y"#)?);
|
||||
assert!(!engine.eval::<bool>(r#"let y = #{a: 1, b: 2, c: 3}; "z" in y"#)?);
|
||||
|
Loading…
Reference in New Issue
Block a user