@@ -130,12 +130,41 @@ final class ThrownExceptionNotInFunctionTest extends AnyFunSuite with AnalyzerTe
130130        |  f2(identity)(identity) 
131131        |  f3(identity)(42)(identity) 
132132        |  f4(42, 42, identity) 
133+         | 
134+         |  class A { 
135+         |    def f1(x1: Int => Int, x2: String => String) = ??? 
136+         |    def f2(x1: Int => Int)(x2: String => String) = ??? 
137+         |    def f3(x1: Int => Int)(x2: Int)(x3: String => String) = ??? 
138+         |    def f4(x1: Int, x2: Int, x3: String => String) = ??? 
139+         |  } 
140+         |  final val a = new A 
141+         | 
142+         |  //not ok 
143+         |  a.f1(throw ex, throw ex) 
144+         |  a.f1(identity, throw ex) 
145+         |  a.f1(throw ex, identity) 
146+         | 
147+         |  a.f2(throw ex)(throw ex) 
148+         |  a.f2(identity)(throw ex) 
149+         |  a.f2(throw ex)(identity) 
150+         | 
151+         |  a.f3(throw ex)(42)(throw ex) 
152+         |  a.f3(throw ex)(42)(identity) 
153+         |  a.f3(identity)(42)(throw ex) 
154+         | 
155+         |  a.f4(42, 42, throw ex) 
156+         | 
157+         |  //ok 
158+         |  a.f1(identity, identity) 
159+         |  a.f2(identity)(identity) 
160+         |  a.f3(identity)(42)(identity) 
161+         |  a.f4(42, 42, identity) 
133162        |}"""  .stripMargin
134163    )
135164  }
136165
137166  test(" Testing constructor invocation" 
138-     assertErrors(1 ,
167+     assertErrors(7 ,
139168      // language=Scala
140169      s """ 
141170         |object whatever { 
@@ -144,10 +173,20 @@ final class ThrownExceptionNotInFunctionTest extends AnyFunSuite with AnalyzerTe
144173         |  class A(f: String => Int) 
145174         | 
146175         |  new A(throw ex) 
176+          | 
177+          |  class B(f: String => Int)(g: Int => String) 
178+          | 
179+          |  new B(throw ex)(identity) 
180+          |  new B(identity)(throw ex) 
181+          |  new B(throw ex)(throw ex) 
182+          | 
183+          |  class C(f: String => Int, g: Int => String) 
184+          | 
185+          |  new C(throw ex, identity) 
186+          |  new C(identity, throw ex) 
187+          |  new C(throw ex, throw ex) 
147188         |} 
148189         | """ .stripMargin
149190    )
150191  }
151- 
152- 
153192}
0 commit comments