File tree Expand file tree Collapse file tree 3 files changed +20
-1
lines changed
compiler/src/dotty/tools/dotc/typer Expand file tree Collapse file tree 3 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -268,7 +268,7 @@ trait Dynamic {
268
268
if tpe.paramInfoss.nestedExists(! TypeErasure .hasStableErasure(_)) then
269
269
fail(i " has a parameter type with an unstable erasure " ) :: Nil
270
270
else
271
- TypeErasure .erasure( tpe). asInstanceOf [ MethodType ].paramInfos .map(clsOf(_ ))
271
+ tpe.paramInfoss.flatten .map(tp => clsOf(tp.baseType(tp.classSymbol) ))
272
272
structuralCall(nme.applyDynamic, classOfs).maybeBoxingCast(tpe.finalResultType)
273
273
}
274
274
Original file line number Diff line number Diff line change
1
+ import scala .reflect .Selectable .reflectiveSelectable
2
+
3
+ object Test {
4
+ type Runner = { def run (args : Array [String ]): Unit }
5
+
6
+ def test (args : Array [String ], runner : Runner ): Unit =
7
+ runner.run(args)
8
+
9
+ def main (args : Array [String ]): Unit = {
10
+ test(Array (" foo" , " bar" ), new {
11
+ def run (args : Array [String ]): Unit = args foreach println
12
+ })
13
+ }
14
+ }
Original file line number Diff line number Diff line change
1
+ import scala .reflect .Selectable .reflectiveSelectable
2
+
3
+ type Runner = { def run (args : Array [String ]): Unit }
4
+
5
+ def test (runner : Runner ): Unit = runner.run(??? )
You can’t perform that action at this time.
0 commit comments