blob: e3c5f49ede56d7ad535233bf945666c4f39b21aa [file] [log] [blame]
// Copyright (c) 2021, 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.
class RequireTrailingCommasExample {
RequireTrailingCommasExample.constructor1(Object param1, Object param2);
RequireTrailingCommasExample.constructor2(
Object param1,
Object param2,
Object param3,
);
RequireTrailingCommasExample.constructor3(
Object param1, Object param2, Object param3); // LINT
RequireTrailingCommasExample.constructor4(
Object param1,
Object param2, [
Object param3 = const [
'test',
],
]);
RequireTrailingCommasExample.constructor5(Object param1, Object param2,
[Object param3 = const [
'test',
]]); // LINT
RequireTrailingCommasExample.constructorWithAssert1()
: assert(
true,
'A very very very very very very very very long string',
);
RequireTrailingCommasExample.constructorWithAssert2()
: assert(true,
'A very very very very very very very very long string'); // LINT
void operator [](Object param1, Object param2, Object param3, Object param4,
Object param5) {} // LINT
void method1(Object param1, Object param2, {Object param3, Object param4}) {}
void method2(
Object param1,
Object param2,
Object param3,
Object param4,
Object param5,
) {}
void method3(
Object param1,
Object param2, {
Object param3,
Object param4,
Object param5,
}) {}
void method4(Object param1, Object param2, Object param3, Object param4,
Object param5) {} // LINT
void method5(Object param1, Object param2,
{Object param3, Object param4, Object param5}) {} // LINT
void method6(Object param1, Object param2,
{Object param3,
Object param4,
Object param5,
Object param6,
Object param7}) {} // LINT
void method7(Object param1, Object param2, Object param3,
{Object namedParam = true}) {} // LINT
void run() {
void test(Object param1, Object param2, {Object param3}) {}
test('fits on one line, no need trailing comma', 'test');
test(
'does not fit on one line, requires trailing comma',
'test test test test test',
);
test('does not fit on one line, requires trailing comma',
'test test test test test'); // LINT
test('test', () {
// Function literal implemented using curly braces.
});
test('test', () {
// Function literal implemented using curly braces.
}, param3: 'test'); // LINT
test(
'test',
() {
// Function literal implemented using curly braces.
},
param3: 'test',
);
test('test', 'test', param3: () {
// Function literal implemented using curly braces.
}); // LINT
test(
'test',
'test',
param3: () {
// Function literal implemented using curly braces.
},
);
test(
() {
// Function literal implemented using curly braces.
},
'test',
);
test(() {
// Function literal implemented using curly braces.
}, 'test'); // LINT
test('map literal', {
'one': 'test',
'two': 'test',
});
test({
'one': 'test',
'two': 'test',
}, 'map literal'); // LINT
test('set literal', {
'one',
'two',
});
test({
'one',
'two',
}, 'set literal'); // LINT
test('list literal', [
'one',
'two',
]);
test([
'one',
'two',
], 'list literal'); // LINT
(a, b) {
// Self-executing closure.
}(1, 2);
(one, two, three, four, five, six, seven, eight, nine, ten,
veryVeryVeryLong) //LINT
{
// Self-executing closure.
}(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
'a very very very very very very very long string'); // LINT
test(
'no exception for set literal as it fits entirely on 1 line',
const {'one', 'two', 'three'},
);
test('no exception for set literal as it fits entirely on 1 line',
const {'one', 'two', 'three'}); // LINT
test('exception for set literal as it spans multiple lines', const {
'one',
'two',
'three',
});
test('exception for set literal as it spans multiple lines', const <
AnExtremelyLongClassNameOneTwoThreeFourFiveSixSevenEightNineTen>{});
test(
'no exception for array literal as it fits entirely on 1 line',
const ['one', 'two', 'three'],
);
test('no exception for array literal as it fits entirely on 1 line',
const ['one', 'two', 'three']); // LINT
test('exception for array literal as it spans multiple lines', const [
'one',
'two',
'three',
]);
test('exception for array literal as it spans multiple lines', const <
AnExtremelyLongClassNameOneTwoThreeFourFiveSixSevenEightNineTen>[]);
test(
'no exception for map literal as it fits entirely on 1 line',
const {'one': '1', 'two': '2', 'three': '3'},
);
test('no exception for map literal as it fits entirely on 1 line',
const {'one': '1', 'two': '2', 'three': '3'}); // LINT
test('exception for map literal as it spans multiple lines', const {
'one': '1',
'two': '2',
'three': '3',
});
test('exception for map literal as it spans multiple lines', const <String,
AnExtremelyLongClassNameOneTwoThreeFourFiveSixSevenEightNineTen>{});
test(
'no exception for function literal as it fits entirely on 1 line',
() {},
);
test('no exception for function literal as it fits entirely on 1 line',
() {}); // LINT
assert(true);
assert('a very very very very very very very very very long string'
.isNotEmpty); // LINT
assert(
'a very very very very very very very very very long string'.isNotEmpty,
);
assert(false, 'a short string');
assert(false,
'a very very very very very very very very very long string'); // LINT
assert(
false,
'a very very very very very very very very very long string',
);
}
}
class AnExtremelyLongClassNameOneTwoThreeFourFiveSixSevenEightNineTen {}