sorted property

Iterable<FieldElement> get sorted

Returns a Set of all instance FieldElement items for element and super classes, sorted first by their location in the inheritance hierarchy (super first) and then by their location in the source file.

Implementation

Iterable<FieldElement> get sorted {
  // Get all of the fields that need to be assigned
  final elementInstanceFields =
      Map.fromEntries(element.fields.where((e) => !e.isStatic).map((e) => MapEntry(e.name, e)));

  final inheritedFields = <String, FieldElement>{};

  // Get the list of all fields for `element`
  final allFields = elementInstanceFields.keys.toSet().union(inheritedFields.keys.toSet());

  final fields =
      allFields.map((e) => _FieldSet(elementInstanceFields[e], inheritedFields[e])).toList();

  // Sort the fields using the `compare` implementation in _FieldSet
  fields.sort();

  return fields.map((fs) => fs.field).toList();
}