private EnvTypePair analyzeHookFwd(
Node expr, TypeEnv inEnv, JSType requiredType, JSType specializedType) {
Node cond = expr.getFirstChild();
Node thenBranch = cond.getNext();
Node elseBranch = thenBranch.getNext();
TypeEnv trueEnv =
analyzeExprFwd(cond, inEnv, JSType.UNKNOWN, JSType.TRUE_TYPE).env;
TypeEnv falseEnv =
analyzeExprFwd(cond, inEnv, JSType.UNKNOWN, JSType.FALSE_TYPE).env;
EnvTypePair thenPair =
analyzeExprFwd(thenBranch, trueEnv, requiredType, specializedType);
EnvTypePair elsePair =
analyzeExprFwd(elseBranch, falseEnv, requiredType, specializedType);