@@ -40,7 +40,7 @@ class SignatureHelpTest {
40
40
| case s @ Even( ${m1}) => println(s"s has an even number of characters")
41
41
| case s => println(s"s has an odd number of characters")
42
42
"""
43
- .signatureHelp(m1, Nil , Some (0 ), 0 )
43
+ .signatureHelp(m1, Nil , Some (0 ), - 1 )
44
44
}
45
45
46
46
@ Test def unapplyCustomClass : Unit = {
@@ -78,6 +78,46 @@ class SignatureHelpTest {
78
78
.signatureHelp(m2, List (signature), Some (0 ), 1 )
79
79
}
80
80
81
+ @ Test def nestedUnapplySignature : Unit = {
82
+ val signatureOneTwo = S (" " , Nil , List (List (P (" a" , " One" ), P (" b" , " Two" ))), None )
83
+ val signatureOne = S (" " , Nil , List (List (P (" c" , " Int" ))), None )
84
+ val signatureTwo = S (" " , Nil , List (List (P (" d" , " Int" ))), None )
85
+
86
+ code """ case class One(c: Int)
87
+ |case class Two(d: Int)
88
+ |case class OneTwo[A, B](a: A, b: B)
89
+ |
90
+ |object Main {
91
+ | val tp = new OneTwo(One(1), Two(5))
92
+ | tp match {
93
+ | case OneTwo(x ${m1}, ${m2}) =>
94
+ | case OneTwo(One(x ${m4}) ${m3}, T ${m5}wo( ${m6}) ${m8}) ${m7} =>
95
+ | }
96
+ |} """
97
+ .signatureHelp(m1, List (signatureOneTwo), Some (0 ), 0 )
98
+ .signatureHelp(m2, List (signatureOneTwo), Some (0 ), 1 )
99
+ .signatureHelp(m3, List (signatureOneTwo), Some (0 ), 0 )
100
+ .signatureHelp(m4, List (signatureOne), Some (0 ), 0 )
101
+ .signatureHelp(m5, List (signatureOneTwo), Some (0 ), 1 )
102
+ .signatureHelp(m6, List (signatureTwo), Some (0 ), 0 )
103
+ }
104
+
105
+ @ Test def properParameterIndexTest : Unit = {
106
+ val signature = S (" " , Nil , List (List (P (" a" , " Int" ), P (" b" , " String" ))), None )
107
+ code """ case class Two(a: Int, b: String)
108
+ |
109
+ |object Main {
110
+ | val tp = new Two(1, "")
111
+ | tp match {
112
+ | case Two(x ${m1}, y ${m2}, d ${m3}) ${m4} =>
113
+ | }
114
+ |} """
115
+ .signatureHelp(m1, List (signature), Some (0 ), 0 )
116
+ .signatureHelp(m2, List (signature), Some (0 ), - 1 )
117
+ .signatureHelp(m3, List (signature), Some (0 ), - 1 )
118
+ .signatureHelp(m4, Nil , Some (0 ), 0 )
119
+ }
120
+
81
121
@ Test def unapplyClass : Unit = {
82
122
val signature = S (" " , Nil , List (List (P (" " , " Int" ), P (" " , " String" ))), None )
83
123
0 commit comments