package me.tomassetti.turin.parser.ast; import me.tomassetti.turin.parser.ast.expressions.Expression; import me.tomassetti.turin.parser.ast.properties.PropertyDefinition; import me.tomassetti.turin.parser.ast.typeusage.TypeUsageNode; import java.util.Collections; public class Placeholder extends Expression { @Override public Iterable<Node> getChildren() { return Collections.emptyList(); } @Override public TypeUsageNode calcType() { Node parent = getParent(); while (parent != null) { if (parent instanceof PropertyDefinition) { PropertyDefinition propertyDefinition = (PropertyDefinition)parent; return propertyDefinition.getType(); } parent = parent.getParent(); } throw new IllegalStateException(); } }