Don't use package object convention for object source path #1917
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.
The
cats.implicits
object is just an ordinary Scala object, not a package object, but its source path follows the convention for a package object. This causes problems on the latest version of Bazel, where the Scala compiler gets confused by the presence of the-sources
jar and complains that "package cats contains object and package with same name: implicits".Thanks to @ianoc-stripe for tracking this down, and for proposing a fix on the Bazel side. There's not really any reason for Cats to do this in the first place, though, and this PR simply moves the file so that the source jar doesn't end up with a
cats/implicits
directory. This is 100% compatible and shouldn't have any affect on anything except build tools that for whatever reason feed source jars to the Scala compiler.