diff --git a/Content.Tests/DMProject/Tests/List/DoubleSquareBracketEquals.dm b/Content.Tests/DMProject/Tests/List/DoubleSquareBracketEquals.dm new file mode 100644 index 0000000000..047b13e809 --- /dev/null +++ b/Content.Tests/DMProject/Tests/List/DoubleSquareBracketEquals.dm @@ -0,0 +1,3 @@ +/proc/RunTest() + var/list/foo[]=new() + ASSERT(islist(foo)) diff --git a/DMCompiler/Compiler/DM/DMParser.cs b/DMCompiler/Compiler/DM/DMParser.cs index 8f4e13deae..48612218b8 100644 --- a/DMCompiler/Compiler/DM/DMParser.cs +++ b/DMCompiler/Compiler/DM/DMParser.cs @@ -287,6 +287,12 @@ public DMASTFile File() { if (Check(TokenType.DM_Equals)) { if (value != null) Warning("List doubly initialized"); + Whitespace(); + value = Expression(); + RequireExpression(ref value); + } else if (Check(TokenType.DM_DoubleSquareBracketEquals)) { + if (value != null) Warning("List doubly initialized"); + Whitespace(); value = Expression(); RequireExpression(ref value); @@ -872,6 +878,10 @@ public DMASTFile File() { Whitespace(); value = Expression(); RequireExpression(ref value); + } else if (Check(TokenType.DM_DoubleSquareBracketEquals)) { + Whitespace(); + value = Expression(); + RequireExpression(ref value); } var valType = AsComplexTypes() ?? DMValueType.Anything; @@ -1722,9 +1732,7 @@ private List DefinitionParameters(out bool wasIndeterm if (Check(TokenType.DM_DoubleSquareBracketEquals)) { Whitespace(); value = Expression(); - } - - if (Check(TokenType.DM_Equals)) { + } else if (Check(TokenType.DM_Equals)) { Whitespace(); value = Expression(); }