Report an error when a top level protocol has a delete message

NEW
Unassigned

Status

()

Core
IPC
P3
normal
a year ago
6 months ago

People

(Reporter: mccr8, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(1 attachment)

(Reporter)

Description

a year ago
type.py checks to make sure that non-top-level protocols have a delete message, but it doesn't check that top level protocols don't have delete messages. Instead (as in bug 1345977) we seem to just generate an empty delete message.

The existing check is:
        if not (p.decl.type.hasDelete or p.decl.type.isToplevel()):
            self.error(
                p.loc,
                "destructor declaration `%s(...)' required for managed protocol `%s'",
                _DELETE_MSG, p.name)
Comment hidden (mozreview-request)
(Reporter)

Comment 2

a year ago
Here's a first pass at this. As you can see, there are a ton of test protocols that declare delete. Maybe it actually did something when we had a state machine? There were a lot of "DEAD: __delete__()" annotations in those files.

PVRManager.ipdl is the only non-test file that does so.

The next step is to audit the dozen or so test protocols in the error/ subdirectory, to figure out which ones need to have __delete__() removed, and then double check that they fail for the right reason once the __delete__ is removed.
(Reporter)

Updated

11 months ago
Depends on: 1319620
(Reporter)

Comment 4

11 months ago
Ah, nice! I wondered why the delete message cases were empty.
(Reporter)

Updated

11 months ago
Assignee: nobody → continuation
Comment hidden (mozreview-request)
(Reporter)

Updated

10 months ago
Assignee: continuation → nobody

Updated

6 months ago
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.