Open Bug 1346911 Opened 5 years ago Updated 4 years ago

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

Categories

(Core :: IPC, enhancement, P3)

enhancement

Tracking

()

People

(Reporter: mccr8, Unassigned)

References

Details

Attachments

(1 file)

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)
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.
Depends on: 1319620
Ah, nice! I wondered why the delete message cases were empty.
Assignee: nobody → continuation
Assignee: continuation → nobody
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.