mobxjs / mobx.dart

MobX for the Dart language. Hassle-free, reactive state-management for your Dart and Flutter apps.
https://mobx.netlify.app
MIT License
2.39k stars 311 forks source link

Null check operator used on a null value throw in mobx_codegen #924

Closed romancores closed 1 year ago

romancores commented 1 year ago

Hello mobx team! Facing the exception on a file which throws this only at one file. Other files work well, but this one not

[SEVERE] mobx_codegen:mobx_generator on lib/presentation/spinner_screen/spinner_screen_vm.dart (cached):

Null check operator used on a null value
package:mobx_codegen/src/type_names.dart 140:39           LibraryScopedNameFinder._getNamedElementTypeName
package:mobx_codegen/src/type_names.dart 97:12            LibraryScopedNameFinder._getDartTypeName
dart:_internal                                            ListIterable.toList
package:mobx_codegen/src/type_names.dart 136:56           LibraryScopedNameFinder._getNamedElementTypeName
package:mobx_codegen/src/type_names.dart 97:12            LibraryScopedNameFinder._getDartTypeName
package:mobx_codegen/src/type_names.dart 49:7             LibraryScopedNameFinder.findVariableTypeName
package:mobx_codegen/src/store_class_visitor.dart 101:28  StoreClassVisitor.visitFieldElement
package:analyzer/src/dart/element/element.dart 3637:54    FieldElementImpl.accept
package:analyzer/src/dart/element/element.dart 2881:13    ElementImpl.visitChildren
package:mobx_codegen/src/mobx_codegen_base.dart 85:9      StoreGenerator._generateCodeFromTemplate
package:mobx_codegen/src/mobx_codegen_base.dart 67:13     StoreGenerator._generateCodeForMixinStore
dart:core                                                 Iterable.toSet
package:mobx_codegen/src/mobx_codegen_base.dart 26:68     StoreGenerator.generate
package:source_gen/src/builder.dart 355:33                _generate

the code example in spinner_screen_vm.dart

part 'spinner_screen_vm.g.dart';

class SpinnerScreenVm = _SpinnerScreenVmBase with _$SpinnerScreenVm;

abstract class _SpinnerScreenVmBase with Store {
    _SpinnerScreenVmBase();
}

using

analyzer: ^5.13.0

build_runner: ^2.4.4 hive_generator: ^2.0.0 injectable_generator: ^2.1.4 mobx_codegen: ^2.3.0 retrofit_generator: ^6.0.0+1

flutter doctor:

Flutter (Channel stable, 3.10.0, on macOS 13.3.1 22E772610a darwin-arm64, locale en-EC)
    • Flutter version 3.10.0 on channel stable 
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 84a1e904f4 (2 weeks ago), 2023-05-09 07:41:44 -0700
    • Engine revision d44b5a94c9
    • Dart version 3.0.0
    • DevTools version 2.23.1
Ashkan-Sarlak commented 9 months ago

Hello @romancores, How did you solve this? I'm getting the exact same error. It started to happen after I upgraded Flutter to 3.16. Was holding on to 3.7 for quite some time. The weird thing is that happens only for one single class.

Ashkan-Sarlak commented 9 months ago

OK the problem was an anonymous extension in that particular file. "analyzer" was throwing an error because of that.

therohansanap commented 8 months ago

@Ashkan-Sarlak How did you fix this? In my case, flutter analyze does not throw any error when run directly from terminal but this error only shows up when generating code for mobx files. I have anonymous extension using ! too.

Ashkan-Sarlak commented 8 months ago

@therohansanap Just don't use an anonymous extension in a mobx store file. Put it in a separate file.