Skip to content

Missing validation for CompositeState.typedToken #2858

@joeseibel

Description

@joeseibel

When a composite state specifies error types in curly braces, the validator should check that there is only one type token specified. The meta-model and grammar allow a type set with multiple types, but only one type or product should be permitted. The following model should have errors:

package missing_validation
public
  system s
    features
      f1: in feature;
      f2: in feature;
    annex EMV2 {**
      use types ErrorLibrary;
      use behavior missing_validation::machine1;

      error propagations
        f1: in propagation {CommonErrors};
        f2: in propagation {CommonErrors};
      end propagations;

      composite error behavior
        states
          composite1: [in f1]-> state1 {ServiceError, ItemTimingError};
          composite2: [in f2]-> state2 {CommonErrors};
      end composite;
    **};
  end s;

  annex EMV2 {**
    error behavior machine1
      use types ErrorLibrary;
      states
        state1: initial state {CommonErrors};
        state2: state {CommonErrors};
    end behavior;
  **};
end missing_validation;

There should be an error on composite1 because it lists multiple types and there should be an error on composite2 because CommonErrors is a type set.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions