class Cucumber::CucumberExpressions::AmbiguousParameterTypeError

def expressions(generated_expressions)

def expressions(generated_expressions)
  generated_expressions.map { |ge| ge.source }.join("\n   ")
end

def initialize(parameter_type_regexp, expression_regexp, parameter_types, generated_expressions)

def initialize(parameter_type_regexp, expression_regexp, parameter_types, generated_expressions)
  super(<<~ERROR)
    Your Regular Expression /#{expression_regexp.source}/
    matches multiple parameter types with regexp /#{parameter_type_regexp}/:
       #{parameter_type_names(parameter_types)}
    I couldn't decide which one to use. You have two options:
    1) Use a Cucumber Expression instead of a Regular Expression. Try one of these:
       #{expressions(generated_expressions)}
    2) Make one of the parameter types preferential and continue to use a Regular Expression.
  ERROR
end

def parameter_type_names(parameter_types)

def parameter_type_names(parameter_types)
  parameter_types.map { |p| "{#{p.name}}" }.join("\n   ")
end