Skip to content

Simplify the Hints interface / implementations #72

@gselzer

Description

@gselzer

As suggested by @ctrueden, it would be ideal to simplify the implementations of Hints (which might affect the API of that interface).

Instead of using a Map<String, String>, where the key is a hint type (e.g. Simplification) and the value is a hint (e.g. Simplification.FORBIDDEN), it would be much simpler to use a Set<String>.

We need to consider the need of:

  1. Removing hints. Neither @ctrueden nor I can think of a time when you'd want to do that. The only time I can think of when we removed a Hint would be when we create a SimplifiedOpInfo/OpAdaptationInfo, because the simplified/adapted Op should specify that it cannot be simplified/adapted again (i.e. we are removing the Simplification.ALLOWED / Adaptation.ALLOWED hint), but this is no longer needed as we will remove the default Hint values.
  2. Preventing two hints of the same hint type. My intuition is that we should prevent multiple hints of the same type, but @ctrueden wondered if there is a situation where we would ever need two mutually-exclusive hint values (right now we have Simplfication.FORBIDDEN and Simplification.IN_PROGRESS, but do we actually need both?)

@ctrueden did I miss anything w.r.t. our discussions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions