#3989 raises the issue that `@Subscribe` methods with primitive parameter types can be registered but they will never be called because the `post()` method takes `Object` and so autoboxes primitives.

`EventBus` should throw an exception preventing registering any `@Subscribe` methods with primitive parameters and document the restriction.
"One of the registered catchers did not receive an event.",
          expectedEvents,
          catcher.getEvents());
    }
  }
  public void testToString() throws Exception {
    EventBus eventBus = new EventBus("a b ; - \" < > / \\ €");
    assertEquals("EventBus{a b ; - \" < > / \\ €}", eventBus.toString());
  }
  /**
   * Tests that bridge methods are not subscribed to events. In Java 8, annotations are included on
   * the bridge method in addition to the original method, which causes both the original and bridge
   * methods to be subscribed (since both are annotated @Subscribe) without specifically checking
   * for bridge methods.
   */
  public void testRegistrationWithBridgeMethod() {
    final AtomicInteger calls = new AtomicInteger();
    bus.register(
        new Callback<String>() {
          @Subscribe
          @Override
          public void call(String s) {
            calls.incrementAndGet();
          }
        });
    bus.post("hello");
    assertEquals(1, calls.get());
  }
  /** Records thrown exception information. */
  private static final class RecordingSubscriberExceptionHandler