ceylon / ceylon.ast

Apache License 2.0
18 stars 3 forks source link

Should we remove ExpressionIsh? #73

Closed lucaswerkmeister closed 9 years ago

lucaswerkmeister commented 9 years ago

At the moment, we have ExpressionIsh as the superclass of “[a]ll node types in the expression sub-hierarchy: Expression and some auxiliary node types that aren’t proper Expressions.”

As expressions have become more and more powerful, ExpressionIsh has become more and more bloated, both in the number of its subtypes and in the number of union type members in its children type.

And with inline expressions entering the game as well now – meaning that I need to make even more types subtypes of ExpressionIsh, like ExtendedType and SatisfiedTypes for #68 –, I wonder if ExpressionIsh is still any meaningful abstraction, or if we should perhaps just remove it, and make Expression have a plain Node[] children.

Of course, this means that the Node type grows a lot more direct subtypes.

lucaswerkmeister commented 9 years ago

I’m going to remove it.