Skip to content

Consider recording particularly bad/surprising silent semantic changes #1

@GrahamTheCoder

Description

@GrahamTheCoder

These are things which don't strictly break binary compatibility. I'm considering adding some of them in future but want to have a reasonably exhaustive list of changes that fall into this category, and criteria for which ones are included. At that point I may redefine the project to be focussed on "binary semantics", i.e. what an average programmer would expect to happen

Possible candidates in order of likelihood of inclusion:

  • Enum values (which are compiled into the consuming assembly)
    • Form a set of valid values which is highly likely to cause problems if a value disappears.
    • Many people may be surprised by the old value being used.
  • Constant field values (are compiled into the consuming assembly)
    • Some people may be surprised by the old value being used.
    • Sometimes used like enums, i.e. may have a small set of valid values
  • Default method parameter values (are compiled into the consuming assembly)
    • Some people may be surprised by the old value being used.
  • Method body change
    • Could obviously completely change the semantics of a method without changing its signature
    • People should fully expect to get the new behaviour, that's the whole point of this

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions