Conversation
|
The generated output of |
There was a problem hiding this comment.
I'm Bonk, and I've done a quick review of your PR.
This PR migrates several MembranePolicy subclasses from kj::Refcounted + manual addRef() overrides to kj::Rc<T> / kj::rc<T>().
Issues (ranked by severity):
- [HIGH] Build is broken — classes are abstract and cannot be instantiated.
capnp::MembranePolicy::addRef()is pure virtual (= 0) in the currently pinned capnp-cpp. This PR removes theaddRef()overrides, makingCompletionMembrane,RevokerMembrane,AttachmentMembrane, andServerTopLevelMembraneabstract. CI confirms 13 compilation errors. This PR appears to depend on an upstream capnp-cpp change (makingaddRef()non-pure-virtual or removing it entirely), but the capnp-cpp pin inMODULE.bazelhas not been updated. - [HIGH] Type mismatch —
kj::Rc<T>is not implicitly convertible tokj::Own<T>.capnp::membrane()takeskj::Own<MembranePolicy>for the policy parameter.kj::rc<T>(...)returnskj::Rc<T>, and there is no implicit conversion. Eachcapnp::membrane(client, kj::rc<...>(...))call would be a type error even if the abstract-class issue were resolved. - [MEDIUM]
cm.addRef()onRc<CompletionMembrane>returnsRc<CompletionMembrane>, notOwn<MembranePolicy>. Line 2135 passes the result ofcm.addRef()tocapnp::membrane(), which again expectskj::Own<MembranePolicy>.
All three issues are symptoms of the same root cause: this PR requires a coordinated capnp-cpp update that adds Rc-based membrane overloads (or changes MembranePolicy to no longer require manual addRef()). That dependency update is missing from this PR.
This review was written by an AI assistant (Bonk). Feedback may not be perfect — please use your judgment.
|
Review posted successfully on PR #6650. Here's a summary of what I found: 3 issues identified, all stemming from the same root cause — this PR depends on an upstream capnp-cpp update that isn't included:
The PR needs a coordinated capnp-cpp dependency update to land. |
fb54439 to
21b7e45
Compare
21b7e45 to
11406ec
Compare
|
@mikea Bonk workflow was cancelled. View workflow run · To retry, trigger Bonk again. |
|
Now let me also verify the Looking at line 2133-2135: auto& cm = JSG_REQUIRE_NONNULL(
completionMembrane, Error, "getExternalPusher() must be called before call()");
return capnp::membrane(kj::mv(target), cm.addRef());
The whole change is clean and straightforward. The PR correctly:
There are no type mismatches, no backward compatibility issues (this is all internal), no security concerns. The code compiles cleanly against the new capnp-cpp pin. LGTM |
counterpart to capnproto/capnproto#2634