Skip to content

Deleting Interface left implementing Class in inconsistent state

Version: 0089be85

Issue

Deleting and committing an Interface causes any classes that were previously implementing the interface to become inconsistent and unable to have changes committed against them afterwards. I did notice, after deleting the interface in Jade, the only unstaged change was for the Interface deletion, there was no corresponding change to the class, as might have been expected.

Reproducer

schemas.zip

  1. Load the reproducing schemas into a git repo & JadeGit
  2. Delete the IWidget interface via the Interface Browser window
  3. Stage and commit the IWidget deletion in JadeGit
  4. Perform some action to force a change on the Widget class - change access from public to protected
  5. Attempt to stage the Widget class change
  6. Observe the following error

image

Workaround

I initially attempted to Reset -> Delete changes (--hard) but this ran into the same exception. I was however, able to add another interface with the same name, implement it and commit both the interface & class.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information