blob: e03c39446642536dd7de0fe844469988e20d67fe [file] [edit]
// 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.
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../rule_test_support.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(PreferConstConstructorsTest);
});
}
@reflectiveTest
class PreferConstConstructorsTest extends LintRuleTest {
@override
bool get addMetaPackageDep => true;
@override
String get lintRule => 'prefer_const_constructors';
@FailingTest(issue: 'https://github.com/dart-lang/linter/issues/3389')
test_deferred_arg() async {
newFile2('$testPackageLibPath/a.dart', '''
class A {
const A();
}
const aa = A();
''');
await assertNoDiagnostics(r'''
import 'a.dart' deferred as a;
class B {
const B(Object a);
}
main() {
var b = B(a.aa);
}
''');
}
test_deferredConstructorCall() async {
newFile2('$testPackageLibPath/a.dart', '''
class A {
const A();
}
''');
await assertNoDiagnostics(r'''
import 'a.dart' deferred as a;
void f() {
var aa = a.A();
}
''');
}
test_extraPositionalArgument() async {
await assertDiagnostics(r'''
import 'package:meta/meta.dart';
class K {
@literal
const K();
}
K k() {
var kk = K();
return kk;
}
''', [
// No lint
error(WarningCode.NON_CONST_CALL_TO_LITERAL_CONSTRUCTOR, 90, 3),
]);
}
}