pub fn lower_protocol_ir(
protocol: &ServiceProtocol,
program: &CheckedProgram,
) -> ProtocolIrExpand description
P6.11 ([DECISION A], #1171): lower a service’s own from <protocol>
header into a real ProtocolIr — standalone, takes the sub-node
rather than the owning ServiceDecl (mirrors
lower_store_field_shape_ir), so a from websocket/from Events
fixture can pin the descriptor by itself.
WebSocket/Events’s own type refs resolve through the Ty::Unit
fallback, not an ADR 0334 panic — deliberately: resolver.rs skips
CommonsItem::Service in every one of its own type-ref-resolution
passes (resolver.rs:303-304/493-494/577-578), and the one checker
site that does resolve a WebSocket frame type itself falls back to
Ty::Unit on a miss rather than erroring (context_checks.rs:775-778).
Panicking here would make this an ADR-0334 site asserting a guarantee
the checker doesn’t actually give (the agent key_ty site that once did,
review of #1169, went with the item assembly in Slice D1 of #1542).