avoid-functions-in-register-singleton
Warns when a function is passed to registerSingleton
.
Passing a function may produce unexpected results. Consider passing an object instance, or use registerFactory
or registerLazySingleton
instead.
Example
❌ Bad:
void main() {
// LINT: Passing a function to "registerSingleton" may produce unexpected results. Try passing an object instance, or use "registerFactory" or "registerLazySingleton" instead.
GetIt.I.registerSingleton(() => SomeClass());
// LINT: Passing a function to "registerSingleton" may produce unexpected results. Try passing an object instance, or use "registerFactory" or "registerLazySingleton" instead.
GetIt.instance.registerSingleton(() => SomeClass());
final getIt = GetIt.instance;
// LINT: Passing a function to "registerSingleton" may produce unexpected results. Try passing an object instance, or use "registerFactory" or "registerLazySingleton" instead.
getIt.registerSingleton(() => SomeClass());
}
class SomeClass {}
✅ Good:
void main() {
GetIt.I.registerLazySingleton(() => SomeClass());
GetIt.I.registerFactory(() => SomeClass());
GetIt.I.registerSingleton(SomeClass());
}
class SomeClass {}