blob: 631e59ab06b50b2c21baccde40857ca2339029ba [file] [log] [blame]
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'print_helper.dart';
void main() {
// The mini-parser does not recognize for-in statements, mis-parsing them as for-statements.
testStatement(
'for(a in b; a in b; a in b);',
'for ((a in b); a in b; a in b)\n ;',
);
final aInB = testExpression('a in b');
testStatement(
'for(#;#;#);',
[aInB, aInB, aInB],
'for ((a in b); a in b; a in b)\n ;',
);
testStatement(
'for(var v = (# || #);;);',
[aInB, aInB],
'for (var v = (a in b) || (a in b);;)\n ;',
);
testStatement(
'for (u = (a + 1) * (b in z);;);',
'for (u = (a + 1) * (b in z);;)\n ;',
);
testStatement(
'for (u = (a + 1) * #;;);',
aInB,
'for (u = (a + 1) * (a in b);;)\n ;',
);
testStatement(
'for (u = (1 + a) * 2, v = 1 || (b in z) || 2;;);',
'for (u = (1 + a) * 2, v = 1 || (b in z) || 2;;)\n ;',
);
testStatement(
'for (var v in x);',
'for (var v in x)\n ;',
);
}