Skip to content

Commit 33fb1e3

Browse files
pqCommit Queue
authored and
Commit Queue
committed
extension type support for camel_case_types
Fixes: https://github.com/dart-lang/linter/issues/4716 Change-Id: I0ced3926c13f92c471df537621fa18429c4982b1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/322567 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Phil Quitslund <[email protected]>
1 parent c1cacbe commit 33fb1e3

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

pkg/linter/lib/src/rules/camel_case_types.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class CamelCaseTypes extends LintRule {
5959
registry.addClassTypeAlias(this, visitor);
6060
registry.addFunctionTypeAlias(this, visitor);
6161
registry.addEnumDeclaration(this, visitor);
62+
registry.addExtensionTypeDeclaration(this, visitor);
6263
}
6364
}
6465

@@ -89,6 +90,11 @@ class _Visitor extends SimpleAstVisitor<void> {
8990
check(node.name);
9091
}
9192

93+
@override
94+
void visitExtensionTypeDeclaration(ExtensionTypeDeclaration node) {
95+
check(node.name);
96+
}
97+
9298
@override
9399
void visitFunctionTypeAlias(FunctionTypeAlias node) {
94100
check(node.name);

pkg/linter/test/rules/all.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import 'avoid_unused_constructor_parameters_test.dart'
4141
import 'avoid_void_async_test.dart' as avoid_void_async;
4242
import 'await_only_futures_test.dart' as await_only_futures;
4343
import 'camel_case_extensions_test.dart' as camel_case_extensions;
44+
import 'camel_case_types_test.dart' as camel_case_types;
4445
import 'cancel_subscriptions_test.dart' as cancel_subscriptions;
4546
import 'cast_nullable_to_non_nullable_test.dart'
4647
as cast_nullable_to_non_nullable;
@@ -251,6 +252,7 @@ void main() {
251252
avoid_void_async.main();
252253
await_only_futures.main();
253254
camel_case_extensions.main();
255+
camel_case_types.main();
254256
cancel_subscriptions.main();
255257
cast_nullable_to_non_nullable.main();
256258
collection_methods_unrelated_type.main();
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'package:test_reflective_loader/test_reflective_loader.dart';
6+
7+
import '../rule_test_support.dart';
8+
9+
main() {
10+
defineReflectiveSuite(() {
11+
defineReflectiveTests(CamelCaseTypesTest);
12+
});
13+
}
14+
15+
@reflectiveTest
16+
class CamelCaseTypesTest extends LintRuleTest {
17+
@override
18+
String get lintRule => 'camel_case_types';
19+
20+
test_extensionType_lowerCase() async {
21+
// No need to test all the variations. Name checking is shared with other
22+
// declaration types.
23+
await assertDiagnostics(r'''
24+
extension type fooBar(int i) {}
25+
''', [
26+
lint(15, 6),
27+
]);
28+
}
29+
30+
test_extensionType_wellFormed() async {
31+
await assertNoDiagnostics(r'''
32+
extension type FooBar(int i) {}
33+
''');
34+
}
35+
}

0 commit comments

Comments
 (0)