private Object addSubstatement(ExecutableStatement stmt) {
    if (stmt instanceof ExecutableAccessor) {
      ExecutableAccessor ea = (ExecutableAccessor) stmt;
      if (ea.getNode().isIdentifier() && !ea.getNode().isDeepProperty()) {
        loadVariableByName(ea.getNode().getName());
        return null;
      }
    }

    compiledInputs.add(stmt);

    assert debug("ALOAD 0");
    mv.visitVarInsn(ALOAD, 0);

    assert debug("GETFIELD p" + (compiledInputs.size() - 1));
    mv.visitFieldInsn(GETFIELD, className, "p" + (compiledInputs.size() - 1),
        "L" + NAMESPACE + "compiler/ExecutableStatement;");

    assert debug("ALOAD 2");
    mv.visitVarInsn(ALOAD, 2);

    assert debug("ALOAD 3");
    mv.visitVarInsn(ALOAD, 3);

    assert debug("INVOKEINTERFACE ExecutableStatement.getValue");
    mv.visitMethodInsn(INVOKEINTERFACE, getInternalName(ExecutableStatement.class), "getValue",
        "(Ljava/lang/Object;L" + NAMESPACE + "integration/VariableResolverFactory;)Ljava/lang/Object;");

    return null;
  }