File tree Expand file tree Collapse file tree 3 files changed +19
-2
lines changed
compiler/src/dotty/tools/dotc/ast Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -1039,8 +1039,10 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
10391039 protected def skipLocal (sym : Symbol ): Boolean = true
10401040
10411041 /** Is this a symbol that of a local val or parameterless def for which we could get the rhs */
1042- private def isBinding (sym : Symbol )(implicit ctx : Context ): Boolean =
1043- sym.exists && ! sym.is(Param ) && ! sym.owner.isClass && ! sym.isAnonymousFunction
1042+ private def isBinding (sym : Symbol )(implicit ctx : Context ): Boolean = {
1043+ sym.exists && ! sym.is(Param ) && ! sym.owner.isClass &&
1044+ ! (sym.is(Method ) && sym.info.isInstanceOf [MethodOrPoly ]) // if is a method it is parameterless
1045+ }
10441046 }
10451047
10461048 implicit class ListOfTreeDecorator (val xs : List [tpd.Tree ]) extends AnyVal {
Original file line number Diff line number Diff line change @@ -17,6 +17,15 @@ tree deref. vals: Term.Ident("a")
1717tree: Term.Inlined(None, Nil, Term.Ident("x"))
1818tree deref. vals: Term.Ident("b")
1919
20+ tree: Term.Inlined(None, Nil, Term.Ident("x"))
21+ tree deref. vals: Term.Apply(Term.Ident("d2"), Nil)
22+
23+ tree: Term.Inlined(None, Nil, Term.Ident("x"))
24+ tree deref. vals: Term.Apply(Term.Ident("d3"), List(Term.Literal(Constant.Int(3))))
25+
26+ tree: Term.Inlined(None, Nil, Term.Ident("x"))
27+ tree deref. vals: Term.TypeApply(Term.Ident("d4"), List(TypeTree.Ident("Int")))
28+
2029tree: Term.Inlined(None, Nil, Term.Ident("vv"))
2130tree deref. vals: Term.Literal(Constant.Int(1))
2231
Original file line number Diff line number Diff line change @@ -9,12 +9,18 @@ object Test {
99 val v : Int = 1
1010 def d : Int = 2
1111 lazy val l : Int = 3
12+ def d2 (): Int = 2
13+ def d3 (a : Int ): Int = a
14+ def d4 [T ]: Int = 2
1215 inspect(3 )
1316 inspect(v)
1417 inspect(d)
1518 inspect(l)
1619 inspect(a)
1720 inspect(b)
21+ inspect(d2())
22+ inspect(d3(3 ))
23+ inspect(d4[Int ])
1824
1925 val vv = v
2026 def dv = v
You can’t perform that action at this time.
0 commit comments