Skip to content

Extract Method refactoring misses a required formal parameter #60373

Open
@scheglov

Description

@scheglov
  void _writeExportRequirements(BundleRequirementsManifest requirements) {
    var exportRequirements = requirements.exportRequirements.sortedBy(
      (requirement) => requirement.exportedUri.toString(),
    );

    sink.writeElements(
      'exportRequirements',
      exportRequirements,
      (requirement) {
        sink.writelnWithIndent(requirement.exportedUri);
        sink.withIndent(() {
          sink.writeElements(
            'combinators',
            requirement.combinators,
            (combinator) {
              switch (combinator) {
                case ExportRequirementHideCombinator():
                  var baseNames = combinator.hiddenBaseNames.sorted();
                  sink.writelnWithIndent('hide ${baseNames.join(', ')}');
                case ExportRequirementShowCombinator():
                  var baseNames = combinator.shownBaseNames.sorted();
                  sink.writelnWithIndent('show ${baseNames.join(', ')}');
              }
            },
          );

          var entries = requirement.exportedIds.sorted;
          for (var entry in entries) {
            _writeNamedId(entry);
          }
        });
      },
    );
  }

Select and try to extract it.

          sink.writeElements(
            'combinators',
            requirement.combinators,
            (combinator) {
              switch (combinator) {
                case ExportRequirementHideCombinator():
                  var baseNames = combinator.hiddenBaseNames.sorted();
                  sink.writelnWithIndent('hide ${baseNames.join(', ')}');
                case ExportRequirementShowCombinator():
                  var baseNames = combinator.shownBaseNames.sorted();
                  sink.writelnWithIndent('show ${baseNames.join(', ')}');
              }
            },
          );
Image

The extracted code uses requirement, but the extracdted method signature does not specify it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3A lower priority bug or feature requestarea-devexpFor issues related to the analysis server, IDE support, linter, `dart fix`, and diagnostic messages.devexp-refactoringIssues with analysis server refactorings

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions