address review: assignment scan and wasm TLS - #8716
Conversation
Skip comments and lambda defaults in the condition assignment scanner. Restrict the suite-header colon fallback to yield targets. Capture __del__ before calling it. Store browser socket timeouts as f64 and accept integers. Fail closed when wasm verify_mode is not CERT_NONE. Export getpeercert and feed MemoryBIO EOF. Assisted-by: Grok:grok-4.6
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe pull request updates compiler scanners, object finalization lookup, WebAssembly socket timeout handling, and WebAssembly SSL behavior. ChangesCompiler scanner updates
Object finalization lookup
Socket timeout handling
SSL connection behavior
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Suggested reviewers: Merge Risk: ⚪ Minimal · up to The compiler, socket, destructor, and WebAssembly SSL changes show no concrete merge-blocking regression. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 73144c4a75
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let colon = top_level_colon(bytes, target_start, target_end)?; | ||
| let after = skip_horizontal_whitespace(bytes, colon + 1); | ||
| if after >= target_end { | ||
| if after >= target_end || !starts_identifier(bytes, after, b"yield") { |
There was a problem hiding this comment.
Allow parentheses before the post-header yield
For the documented input def f(): (yield bar) = y, after points to ( rather than yield, so this guard returns None and disables the suite-header fallback it is intended to preserve. Consequently, the existing parenthesized_yield_assignment_uses_invalid_target_message and parenthesized_yield_augassign_uses_illegal_expression_message tests receive a generic parser diagnostic instead of their required CPython-compatible messages; inspect or parse the post-colon expression through its parentheses before rejecting it.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Applied. The suite-header fallback still starts at the first token after :, but the yield check now walks through grouping parentheses, so def f(): (yield bar) = y keeps the invalid-target messages.
— commented by Claude
Walk through grouping parentheses before requiring yield after a suite-header colon. Assisted-by: Grok:grok-4.6
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f7e2a3429a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Drain buffered plaintext before reporting BIO EOF
When the incoming MemoryBIO has reached EOF, every call to pump() now feeds an empty slice, and TlsConnection::feed_tls immediately returns ZeroReturn or Eof. If the final TLS records produced more plaintext than the previous read(len) consumed—for example, the peer sent a response and closed while the caller reads it in small chunks—the next read() fails here before consulting rustls's buffered plaintext, making the remainder permanently inaccessible. The non-WASM SSL path explicitly checks pending_plaintext() and returns those bytes before propagating either clean or unexpected EOF; this path needs the same ordering.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Applied. pump now feeds BIO EOF only when rustls has no pending plaintext, so a later read() still returns the leftover application data before ZeroReturn/EOF.
— commented by Claude

Follow-up to #8701 review comments that landed after the squash merge.
#comments and lambda defaults incondition_plain_assignmentyieldtargets__del__before calling it so the unraisable names the destructor that ran_sockettimeouts asf64bits and accept integers viaArgIntoFloatverify_mode != CERT_NONE; exportgetpeercert; feed MemoryBIO EOF into TLSAssisted-by: Grok:grok-4.6
Summary by CodeRabbit
Bug Fixes
API Changes
getpeercert, returning DER data or an empty result after handshake completion.