json_serializable.dart icon indicating copy to clipboard operation
json_serializable.dart copied to clipboard

Cannot populate the required constructor argument: elementInfo. It is assigned to a field not meant to be used in fromJson.

Open MikePendo opened this issue 6 months ago • 2 comments

Hi, So I guess my issue coz of some generics that I used I am wondering if there is some work around. So in general I have a Tree, TreeElement, and ElementInfo

class DataTree implements Tree<TreeElement, Element> {
    late TreeElement _root;
...
}
class TreeElement<T extends InternalElementTreeInfo> implements TreeNode {
 T _elementInfo;
 TreeElement({ required T elementInfo }) : _elementInfo = elementInfo; <-- This is line 18

on dart run build_runner build --delete-conflicting-outputs I got the following error: Cannot populate the required constructor argument: elementInfo. It is assigned to a field not meant to be used in fromJson. package:pendo_sdk/src/tree/tree_element.dart:18:3 Must admit I dont really understand the error, any suggestion of how I can overcome it?

MikePendo avatar Dec 26 '23 03:12 MikePendo

ok adding

TreeElement._() : _elementInfo = ElementInfo.rootElementInfo() as T; and using @JsonSerializable(explicitToJson: true, constructor: '_') seems like generates without errors

MikePendo avatar Dec 26 '23 04:12 MikePendo

Strange the generation seem fine but when I run my package in the app I get the following error: Error: Method not found: '_$DataTree'.

MikePendo avatar Dec 26 '23 05:12 MikePendo