@@ -478,12 +478,14 @@ trait ImplicitRunInfo { self: Run =>
478
478
*
479
479
* - If `tp` is a class reference, S contains a reference to the companion object of the class,
480
480
* if it exists, as well as the implicit scopes of all of `tp`'s parent class references.
481
- * - If `tp` is an opaque type alias `p.A` of type `tp'`, S contains a reference to an object `A` defined in the
482
- * same scope as the opaque type, if it exists, as well as the implicit scope of `tp'`.
483
- * - If `tp` is a reference `p.T` to a class or opaque type alias, S also contains all object references
484
- * on the prefix path `p`. Under Scala-2 mode, package objects of package references on `p` also
485
- * count towards the implicit scope.
486
- * - If `tp` is an alias of `tp'`, S contains the implicit scope of `tp'`.
481
+ * - If `tp` is an opaque type alias or abstract type `p.A`, S contains a reference to an
482
+ * object `A` defined in the same scope as type `A`, if it exists, as well as
483
+ * the implicit scope of `tp`s upper bound.
484
+ * - If `tp` is a reference `p.T` to a class, an opaque type alias, or an abstract type,
485
+ * S also contains all object references on the prefix path `p`.
486
+ * Under Scala-2 mode, package objects of package references on `p` also count
487
+ * towards the implicit scope.
488
+ * - If `tp` is a (non-opaque) alias of `tp'`, S contains the implicit scope of `tp'`.
487
489
* - If `tp` is some other type, its implicit scope is the union of the implicit scopes of
488
490
* its parts (parts defined as in the spec).
489
491
*
@@ -501,7 +503,8 @@ trait ImplicitRunInfo { self: Run =>
501
503
/** Is `sym` an anchor type for which givens may exist? Anchor types are classes,
502
504
* opaque type aliases, and abstract types, but not type parameters
503
505
*/
504
- def isAnchor (sym : Symbol ) = sym.isClass && ! sym.is(Package ) || sym.isOpaqueAlias
506
+ def isAnchor (sym : Symbol ) =
507
+ sym.isClass && ! sym.is(Package ) || sym.is(DeferredType )
505
508
506
509
def anchors (tp : Type ): List [Type ] = tp match {
507
510
case tp : NamedType if isAnchor(tp.symbol) => tp :: Nil
0 commit comments