slang-i18n / slang

Type-safe i18n for Dart and Flutter
https://pub.dev/packages/slang
MIT License
459 stars 40 forks source link

Crash compilation flutter web #251

Open bounty1342 opened 3 hours ago

bounty1342 commented 3 hours ago

Describe the bug The "equal" and "hashcode" generation result in : [ +3 ms] Target dart2js failed: ProcessException: Process exited abnormally with exit code 253:

To Reproduce Generate un long list of traductions (800+) with name of 40+ char (ex : supportError_solution_awsApiGetScCounterUnknown)

Expected behavior ✓ Built build/web

Additional context flutter build web

bounty1342 commented 2 hours ago

Generating something like this might help :

@override
  bool operator ==(Object other) =>
      other is CommonI18n && _listEquality.equals(_fields, other._fields);

  @override
  int get hashCode => _listEquality.hash(_fields);

  // Split out the common fields into a list for easier comparison
  List<String> get _fields => [
        apptitle,
        common_date_format_full,
        common_no_result,
        common_search_in_progress,
        common_search_error_title,
        common_search_error_message,
        common_support_error_message_off_network,
        common_support_error_message_aws_1122,
        common_required_field,
        common_date_format_field,
        common_time_format_hh_mm,
        ...
      ];

  static final _listEquality = const ListEquality();