Circular parameter usage is not allowed

The compiler has detected circular parameter usage between classes. This is the case if a class contains a plug-in parameter of the same class, or of a class that in turn contains plug-in parameters of the type of the first class. If the compiler would allow this, it would lead to an infinite list of plug-in parameters that include each other recursively.

This applies to the base class of a plug-in parameter, and also to its default plug-in.

Example:

class A {
default:
  B param test  ; Error! B has A as a plug-in parameter
  endparam
}

class B {
default:
  A param test
  endparam
}

Fix this error by breaking the chain of circular references. For example, you could introduce a new base class and refer to that instead:

class Base {
}

class A(Base) {
default:
  B param test
  endparam
}

class B {
default:
  Base param test
  endparam
} 

See Also
Errors