Skip to content

Commit

Permalink
Put all code in import suggestions under a try-catch
Browse files Browse the repository at this point in the history
There was a val that escaped before, which caused cyclic references raised
during importSuggestions to be reported instead of being ignored.
  • Loading branch information
odersky committed Mar 13, 2024
1 parent 46bfe90 commit b5cff57
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ trait ImportSuggestions:
// Candidates that are already available without explicit import because they
// are already provided by the context (imported or inherited) or because they
// are in the implicit scope of `pt`.
val alreadyAvailableCandidates: Set[Symbol] = {
lazy val alreadyAvailableCandidates: Set[Symbol] = {
val wildProto = wildApprox(pt)
val contextualCandidates = ctx.implicits.eligible(wildProto)
val implicitScopeCandidates = ctx.run.nn.implicitScope(wildProto).eligible
Expand Down
18 changes: 7 additions & 11 deletions tests/neg/i11994.check
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
-- [E046] Cyclic Error: tests/neg/i11994.scala:3:18 --------------------------------------------------------------------
-- [E008] Not Found Error: tests/neg/i11994.scala:2:28 -----------------------------------------------------------------
2 |implicit def foo[T <: Tuple.meow]: Unit = ??? // error
| ^^^^^^^^^^
| type meow is not a member of object Tuple
-- [E008] Not Found Error: tests/neg/i11994.scala:3:18 -----------------------------------------------------------------
3 |given [T <: Tuple.meow]: Unit = ??? // error
| ^
| Cyclic reference involving method given_Unit
|
| The error occurred while trying to compute the signature of given instance given_Unit
| which required to compute the signature of type T
| which required to compute the signature of given instance given_Unit
|
| Run with both -explain-cyclic and -Ydebug-cyclic to see full stack trace.
|
| longer explanation available when compiling with `-explain`
| ^^^^^^^^^^
| type meow is not a member of object Tuple

0 comments on commit b5cff57

Please sign in to comment.