Motivation is that implicit (non-overriden) list features must unify with list of any length. Consider an example: `classifier(cls: node-ptr/A/) = classifier(cls: node-ptr/A/ param: [B,C])` With previous approach it would fail, which seems counter-intuitive to me. So, if empty list (e.g. of type parameters) is meant, then it must be specified explicitly. There's one thing to remember, though: such wildcard list features won't match with MetaLogicalArrays in rule heads. (e.g. see dpromote_* rules and consider what happens when a classifier with unbound `parameter` feature comes in) |
||
|---|---|---|
| .. | ||
| jetbrains.mps.lang.coderules | ||
| jetbrains.mps.lang.controlflow | ||
| jetbrains.mps.lang.smodel.types/generator/template | ||
| jetbrains.mps.lang.typechecking | ||
| jetbrains.mps.logic | ||
| jetbrains.mps.typechecking.annotation | ||
| jetbrains.mps.typechecking.testlang | ||
| jetbrains.mps.typechecking.testlangCycle1/generator/templates | ||
| jetbrains.mps.typechecking.testlangCycle2/generator/templates | ||