if(!_analyzed) {
this._analyzed = true;
final Type targetType = _targetType;
final Type primeType = targetType.prime();
if(primeType == NOTATIONType.NOTATION || primeType == AtomicType.ANY_ATOMIC_TYPE) {
throw new StaticError("err:XPST0080", "Illegal target type: " + _targetType);
}
this._inputExpr = _inputExpr.staticAnalysis(statEnv);
final Type inputType = _inputExpr.getType();
if(inputType == targetType) {
return _inputExpr;