void (@NotNull Disposable parent, @NotNull Disposable child, final @NonNls @NotNull String key) { register(parent, child); Disposable v = get(key); if (v != null) throw new IllegalArgumentException("Key " + key + " already registered: " + v); ourKeyDisposables.put(key, child); register(child, new KeyDisposable(key)); }