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

Fix recent regression with import hooks in blocks #1369

Merged

Conversation

alexarchambault
Copy link
Collaborator

This fixes a regression introduced in #1361. This makes the following work again as expected:

@ {
    import $ivy.`org.typelevel::cats-kernel:2.6.1`
  }

Before the changes here, in Scala 2.x, one gets an error like

cmd0.sc:2: object org.typelevel::cats-kernel:2.6.1 is not a member of package ammonite.$ivy
import $ivy.`org.typelevel::cats-kernel:2.6.1`
       ^
Compilation Failed

@alexarchambault alexarchambault force-pushed the fix-import-hook-in-block branch from 6044cc4 to 3403677 Compare July 18, 2023 13:23
@alexarchambault alexarchambault merged commit 151446c into com-lihaoyi:main Jul 18, 2023
@alexarchambault alexarchambault deleted the fix-import-hook-in-block branch July 18, 2023 14:13
lihaoyi added a commit to com-lihaoyi/mill that referenced this pull request Aug 8, 2023
… or whitespace (#2686)

This is basically a port of the following fix in the Ammonite repo
com-lihaoyi/Ammonite#1361. There were some
changes when the logic was first ported from Ammonite to Mill, resulting
in a much smaller code change than was necessary in the Ammonite repo

There are two related follow up PRs that AFAICT do not apply to Mill:
com-lihaoyi/Ammonite#1363
and com-lihaoyi/Ammonite#1369. Both have to do
with the special handling of multi-statement top-level-blocks `{...}`,
that is a thing in the Ammonite REPL (to allow multiple top-level
declarations to be entered into the REPL before submitting it) but
doesn't apply to Mill scripts.

I have updated the integration tests to include a bunch of random
comments and imports to reproduce the problem causing the tests to fail,
and verified the fix causes the tests to pass. Also this caused a
previously passing test to fail (`2-custom-build-logic`), which on
inspection appears like it was asserting the wrong thing, so I fixed the
assert

Fixes #2681
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant