prefer-correct-type-name
Same as prefer-correct-type-name in Dart Code Metrics
- Group
- Style
- Path
lint/style/prefer-correct-type-name- Default
- Off, opt in
- Origin
- Dart Code Metrics
- Rule
- 344 of 512
Flags type declarations whose name is not well-formed UpperCamelCase.
Consistent UpperCamelCase type names are a core Dart convention that keeps
types visually distinct from members and values. A name is accepted only when
it starts with an uppercase ASCII letter, contains no $, and — after a
single leading underscore is stripped — is between 3 and 40 characters long;
anything else is reported. The check covers classes, mixins, mixin classes,
enums, named extensions, extension types, and type aliases. It inspects the
declared name's spelling only, so it does not enforce interior capitalization
such as an acronym written in all caps.
Invalid
// Lowercase names should be flagged
class foo {}
// Too short (only 2 chars)
class Ab {}
// Lowercase enum
enum color { red, green }
// Too short mixin (2 chars)
mixin mx {}
// Too short typedef (2 chars)
typedef cb = void Function();
// Contains dollar sign
class Foo$Bar {}
// Too long (41 chars)
class VeryLongNameThatExceedsTheFortyCharacterLimit {}
// Extension with name that's too short
extension st on String {}
// ExtensionType with non-uppercase name
extension type val(int x) {}// Lowercase names should be flaggedclass foo {}// Too short (only 2 chars)class Ab {}// Lowercase enumenum color { red, green }// Too short mixin (2 chars)mixin mx {}// Too short typedef (2 chars)typedef cb = void Function();// Contains dollar signclass Foo$Bar {}// Too long (41 chars)class VeryLongNameThatExceedsTheFortyCharacterLimit {}// Extension with name that's too shortextension st on String {}// ExtensionType with non-uppercase nameextension type val(int x) {}Valid
// Standard class with UpperCamelCase
class Foo {}
// Longer descriptive name
class HttpClient {}
// Private class with underscore prefix (stripped, "Internal" is 8 chars and uppercase)
class _Internal {}
// Enum with proper case
enum Color { red, green }
// Mixin with proper case
mixin Loggable {}
// TypeAlias with proper case
typedef Callback = void Function();
// ExtensionType with proper name
extension type IntId(int value) {}
// Extension without name (should not be checked)
extension on String {}
// Extension with a proper name
extension StringX on String {}
// Edge case: exactly 3 chars (minimum)
class Foo {}
// Edge case: exactly 40 chars
class HttpClientWithVeryDetailedNameHere {}
// Private type with valid stripped name
class _HttpClientInternal {}Configure prefer-correct-type-name
Set its severity in falcon.json. See the configuration guide.
{
"linter": {
"rules": {
"style": {
"prefer-correct-type-name": "error"
}
}
}
}Or silence one occurrence with a suppression comment; the reason is required.
// falcon-ignore lint/style/prefer-correct-type-name: <reason>More style rules
- prefer-dedicated-media-query-methods
prefer_dedicated_media_query_methodsrecommendedflutterFlags
MediaQuery.of(context).sizeaccess in favor ofMediaQuery.sizeOf. - prefer-double-quotes
prefer_double_quotesFlags single-quoted string literals that could use double quotes without needing an escape.
- prefer-early-return
Flags a trailing
ifthat wraps multiple statements in a void function. - prefer-equatable-mixinequatable
Prefer
EquatableMixinto directly extending package:equatable's Equatable. - prefer-final-fields
prefer_final_fieldsrecommendedFlags a private field that is initialized but never reassigned, so it could be
final(prefer-final-fields, adopted from package:lints). - prefer-final-in-for-each
prefer_final_in_for_eachrecommendedPrefer
finalfor a for-each loop variable that is never reassigned. - prefer-final-locals
prefer_final_localsrecommendedPrefer
finalfor local variable declarations that are never reassigned. - prefer-final-parameters
prefer_final_parametersPrefer
finalfor parameters that are never reassigned.