Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The type hierarchy of object Foo has changed in new version. Missing types {java.lang.Object,java.lang.Object} #74

Closed
dotta opened this issue May 29, 2015 · 0 comments
Assignees
Labels
Milestone

Comments

@dotta
Copy link
Contributor

dotta commented May 29, 2015

After bumping the Scala version from 2.10.2 to 2.10.5, one functional test started to fail. Here is the reported incompatibility:

[trace] Stack trace suppressed: run last case-class-abstract-becomes-concrete-ok/*:testFunctional for the full output.
[error] (case-class-abstract-becomes-concrete-ok/*:testFunctional) com.typesafe.tools.mima.lib.TestFailed: case-class-abstract-becomes-concrete-ok' failed.
[error]     The following problems were not expected
[error]     - the type hierarchy of object A has changed in new version. Missing types {java.lang.Object,java.lang.Object}

This is clearly wrong, since all classes extends java.lang.Object.

The reason why the test started to fail after bumping the Scala version is that the companion object of a case classes has a slightly different hierarchy in 2.10.5.

While fixing this ticket, let's also make sure that functional tests as part of PR validation from now on.

@dotta dotta added the bug label May 29, 2015
@dotta dotta added this to the 0.1.8 milestone May 29, 2015
dotta added a commit to dotta/migration-manager that referenced this issue May 29, 2015


All classes extends `java.lang.Object`, synthetic (i.e., compiler generated)
classes being no exception.

Furthermore, implemented typesafe equality (`===`) for comparing `ClassInfo`
instances, since the existing calls to `==` where only comparing references
(since `ClassInfo` does not implement `equals`).
@dotta dotta self-assigned this Oct 15, 2015
dotta added a commit to dotta/migration-manager that referenced this issue Oct 15, 2015
Synthetic classes must extends java.lang.Object.

Furthermore, it makes sense that ClassInfo.superClasses is a Set, since order is
not relevant.
dotta added a commit to dotta/migration-manager that referenced this issue Oct 15, 2015
Synthetic classes must extend java.lang.Object.

ClassInfo.superClasses is a Set because order is not relevant.
@2m 2m closed this as completed in #84 Oct 15, 2015
2m added a commit that referenced this issue Oct 15, 2015
Implemented equality contract for ClassInfo. Fix #74
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

1 participant