-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Fix erasure of trait info #264
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
After erasure, traits always extend object, and no other class. The change flushed out three more problems, one in the handling of Super trees in erasure, another in bridge method generation. and a third that class RepeatedParam had Seq, which is a trait, as first parent.
odersky
added a commit
to dotty-staging/dotty
that referenced
this pull request
Dec 11, 2014
The previous scheme derived the right bounds, but then failed to use them because a TypeRef already has a set info (its bounds). Changing the bounds in the symbol by a side effect does not affect that. This is good! But it showed that the previous scheme was too fragile because it used a sneaky side effect when updating the symbol info which failed to propgate into the cached info in TypeRef. We now keep GADT computed bounds separate form the symbol info in a map `gadt` in the current context.
odersky
added a commit
to dotty-staging/dotty
that referenced
this pull request
Dec 16, 2014
The previous scheme derived the right bounds, but then failed to use them because a TypeRef already has a set info (its bounds). Changing the bounds in the symbol by a side effect does not affect that. This is good! But it showed that the previous scheme was too fragile because it used a sneaky side effect when updating the symbol info which failed to propgate into the cached info in TypeRef. We now keep GADT computed bounds separate form the symbol info in a map `gadt` in the current context.
odersky
added a commit
that referenced
this pull request
Dec 19, 2014
Fixed #264 - failure to typecheck GADTs
tgodzik
added a commit
to tgodzik/scala3
that referenced
this pull request
Apr 29, 2025
Backport "Warn universal extensions on opaque types" to 3.3 LTS
Gedochao
added a commit
to Gedochao/dotty
that referenced
this pull request
Sep 29, 2025
Fix val parameter override problem v0.2.1 -- fix potential IDB API issue dep: update a whole bunch of things (scala#71) This pr updates the following: - various dependencies to the latest - adds in dependabot - updates java and checkout actions - updates ammonite scripts and uses new ammonite in CI - updates mill to the latest 0.10.5 - bumps scalajs to 1.x - corrects repo location in pomSettings Merge pull request scala#4238 from armanbilge/issue/4229 Build docs on 2.13 Merge pull request scala#350 from typelevel/update/sbt-typelevel-0.4.13 Update sbt-typelevel to 0.4.13 Merge pull request scala#187 from typelevel/update/sbt-typelevel-0.4.13 Update sbt-typelevel to 0.4.13 Merge pull request scala#318 from scala-steward/update/sbt-typelevel-0.4.3 Update sbt-typelevel, sbt-typelevel-site to 0.4.3 fix http4s output encoding to UTF-8 (scala#900) support scala 3.0.0 Migrate to sbt slash syntax Merge pull request scala#2951 from pchlupacek/patch-1 Update adopters.md Adapt to new restrictions in fewerBraces wip: cleanups Reduce program size in one of the tests to decrease the chance of stack overflow. v4.6.0 Update scalafmt-core to 3.4.0 Remove import suggestions from assertions Clarify the unit of proc().call() 'timeout' parameter (scala#107) Pull request: com-lihaoyi/os-lib#107 Setting version to 2.4.1-SNAPSHOT Update auxlib, javalib, junit-plugin, ... to 0.4.3 Update serialization base64 for new lazy vals Merge pull request scala#616 from SethTisue/enable-scala-3-publishing Disable ExpectationsSpecs message tests Fix test for change in union type inference empty Merge pull request scala#380 from scala-steward/update/sbt-typelevel-0.4.3 Update sbt-typelevel to 0.4.3 Update scalafmt-core to 3.7.12 (scala#163) Co-authored-by: typelevel-steward[bot] <106827141+typelevel-steward[bot]@users.noreply.github.com> test: use the same line numbers in the location spec regardless of the scala compiler version Disable buggy test See scala#16390 New reference compiler is Scala 2.13.12 deps: update a bunch of things (scala#395) * deps: update a bunch of things This updates the following: - make sure Mill is on the latest 0.10.5 - drops support for scalajs 0.x - bumps to the latest scala patch versions - bumps to the latest scalaJS and scala native - bumps to 0.8.0 of utest - adds in dependabot - adds in cross testing jdk for 8 and 17 - bumps version of checkout and java actions * refactor: restructure build to actually build * fix: make mima happy by updating Merge pull request scala#264 from scala-steward/update/test-interface-0.4.7 Update test-interface to 0.4.7 Merge pull request scala#183 from scala-steward/update/auxlib-0.4.3 Update auxlib, javalib, nativelib, nscplugin, ... to 0.4.3 Revert "Fix tests to work with changes after scala#15569" This reverts commit 912b4f887912792202aa76e93fd19e63bd62f3bc.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After erasure, traits always extend object, and no other class.
The change flushed out three more problems, one in the handling of
Super trees in erasure, another in bridge method generation. and a
third that class RepeatedParam had Seq, which is a trait, as first parent.
Review by @DarkDimius