diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-11-26 21:20:21 +0100 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-11-26 22:08:18 +0100 |
commit | f30ae6149ddd4386debbf3a5650b1fc005ed00e9 (patch) | |
tree | 47439b4fc83c6e27a38e1c1645bfbd6d860d08a4 /test | |
parent | eee92c3aa6c1355a5aec97dd9adb2bd2fa61dc09 (diff) | |
parent | 3629b645cc2b1403c51925dd9c696a57008c0ce2 (diff) | |
download | scala-f30ae6149ddd4386debbf3a5650b1fc005ed00e9.tar.gz scala-f30ae6149ddd4386debbf3a5650b1fc005ed00e9.tar.bz2 scala-f30ae6149ddd4386debbf3a5650b1fc005ed00e9.zip |
Merge remote-tracking branch 'origin/pr/3196' into merge/2.10.x-positions-to-master
Conflicts:
src/compiler/scala/tools/nsc/typechecker/Typers.scala
test/files/neg/applydynamic_sip.check
- Changes two calls from `.endOrPoint` to `.point`. The latter
is safe in master for both `Range`- and `OffsetPosition`s
- Updates checkfiles with unrelated position changes (constructors)
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/applydynamic_sip.check | 8 | ||||
-rw-r--r-- | test/files/run/dynamic-applyDynamic.check | 14 | ||||
-rw-r--r-- | test/files/run/dynamic-applyDynamic.scala | 26 | ||||
-rw-r--r-- | test/files/run/dynamic-applyDynamicNamed.check | 14 | ||||
-rw-r--r-- | test/files/run/dynamic-applyDynamicNamed.scala | 26 | ||||
-rw-r--r-- | test/files/run/dynamic-selectDynamic.check | 13 | ||||
-rw-r--r-- | test/files/run/dynamic-selectDynamic.scala | 25 | ||||
-rw-r--r-- | test/files/run/dynamic-updateDynamic.check | 14 | ||||
-rw-r--r-- | test/files/run/dynamic-updateDynamic.scala | 28 |
9 files changed, 164 insertions, 4 deletions
diff --git a/test/files/neg/applydynamic_sip.check b/test/files/neg/applydynamic_sip.check index f28f26c147..2cb2e7f095 100644 --- a/test/files/neg/applydynamic_sip.check +++ b/test/files/neg/applydynamic_sip.check @@ -22,21 +22,21 @@ applydynamic_sip.scala:18: error: type mismatch; error after rewriting to Test.this.bad1.selectDynamic("sel") possible cause: maybe a wrong Dynamic method signature? bad1.sel - ^ + ^ applydynamic_sip.scala:19: error: type mismatch; found : String("sel") required: Int error after rewriting to Test.this.bad1.applyDynamic("sel") possible cause: maybe a wrong Dynamic method signature? bad1.sel(1) - ^ + ^ applydynamic_sip.scala:20: error: type mismatch; found : String("sel") required: Int error after rewriting to Test.this.bad1.applyDynamicNamed("sel") possible cause: maybe a wrong Dynamic method signature? bad1.sel(a = 1) - ^ + ^ applydynamic_sip.scala:20: error: reassignment to val bad1.sel(a = 1) ^ @@ -46,7 +46,7 @@ applydynamic_sip.scala:21: error: type mismatch; error after rewriting to Test.this.bad1.updateDynamic("sel") possible cause: maybe a wrong Dynamic method signature? bad1.sel = 1 - ^ + ^ applydynamic_sip.scala:29: error: Int does not take parameters error after rewriting to Test.this.bad2.selectDynamic("sel") possible cause: maybe a wrong Dynamic method signature? diff --git a/test/files/run/dynamic-applyDynamic.check b/test/files/run/dynamic-applyDynamic.check new file mode 100644 index 0000000000..ae6996f8fc --- /dev/null +++ b/test/files/run/dynamic-applyDynamic.check @@ -0,0 +1,14 @@ +[[syntax trees at end of typer]] // newSource1.scala +[0:67]package [0:0]<empty> { + [0:67]object X extends [9:67][67]scala.AnyRef { + [67]def <init>(): [9]X.type = [67]{ + [67][67][67]X.super.<init>(); + [9]() + }; + [17:30]private[this] val d: [21]D = [25:30][25:30][25:30]new [29:30]D(); + [21]<stable> <accessor> def d: [21]D = [21][21]X.this.d; + [37:49][37:38][37:38][37]X.this.d.applyDynamic(<39:45>"method")([46:48]10); + [56:61]<56:57><56:57>[56]X.this.d.applyDynamic(<56:57>"apply")([58:60]10) + } +} + diff --git a/test/files/run/dynamic-applyDynamic.scala b/test/files/run/dynamic-applyDynamic.scala new file mode 100644 index 0000000000..b06041194c --- /dev/null +++ b/test/files/run/dynamic-applyDynamic.scala @@ -0,0 +1,26 @@ +import scala.tools.partest.DirectTest + +object Test extends DirectTest { + + override def extraSettings: String = + s"-usejavacp -Xprint-pos -Xprint:typer -Yrangepos -Ystop-after:typer -d ${testOutput.path}" + + override def code = """ + object X { + val d = new D + d.method(10) + d(10) + } + """.trim + + override def show(): Unit = { + Console.withErr(System.out) { + compile() + } + } +} + +import language.dynamics +class D extends Dynamic { + def applyDynamic(name: String)(value: Any) = ??? +}
\ No newline at end of file diff --git a/test/files/run/dynamic-applyDynamicNamed.check b/test/files/run/dynamic-applyDynamicNamed.check new file mode 100644 index 0000000000..c4e050ba17 --- /dev/null +++ b/test/files/run/dynamic-applyDynamicNamed.check @@ -0,0 +1,14 @@ +[[syntax trees at end of typer]] // newSource1.scala +[0:97]package [0:0]<empty> { + [0:97]object X extends [9:97][97]scala.AnyRef { + [97]def <init>(): [9]X.type = [97]{ + [97][97][97]X.super.<init>(); + [9]() + }; + [17:30]private[this] val d: [21]D = [25:30][25:30][25:30]new [29:30]D(); + [21]<stable> <accessor> def d: [21]D = [21][21]X.this.d; + [37:70][37:38][37:38][37]X.this.d.applyDynamicNamed(<39:43>"meth")([44:55][44][44]scala.Tuple2.apply[[44]String, [44]Int]([44:50]"value1", [53:55]10), [57:69][57][57]scala.Tuple2.apply[[57]String, [57]Int]([57:63]"value2", [66:69]100)); + [77:91]<77:78><77:78>[77]X.this.d.applyDynamicNamed(<77:78>"apply")([79:90][79][79]scala.Tuple2.apply[[79]String, [79]Int]([79:85]"value1", [88:90]10)) + } +} + diff --git a/test/files/run/dynamic-applyDynamicNamed.scala b/test/files/run/dynamic-applyDynamicNamed.scala new file mode 100644 index 0000000000..cc59f9058b --- /dev/null +++ b/test/files/run/dynamic-applyDynamicNamed.scala @@ -0,0 +1,26 @@ +import scala.tools.partest.DirectTest + +object Test extends DirectTest { + + override def extraSettings: String = + s"-usejavacp -Xprint-pos -Xprint:typer -Yrangepos -Ystop-after:typer -d ${testOutput.path}" + + override def code = """ + object X { + val d = new D + d.meth(value1 = 10, value2 = 100) + d(value1 = 10) + } + """.trim + + override def show(): Unit = { + Console.withErr(System.out) { + compile() + } + } +} + +import language.dynamics +class D extends Dynamic { + def applyDynamicNamed(name: String)(value: (String, Any)*) = ??? +} diff --git a/test/files/run/dynamic-selectDynamic.check b/test/files/run/dynamic-selectDynamic.check new file mode 100644 index 0000000000..9635ca4e6f --- /dev/null +++ b/test/files/run/dynamic-selectDynamic.check @@ -0,0 +1,13 @@ +[[syntax trees at end of typer]] // newSource1.scala +[0:50]package [0:0]<empty> { + [0:50]object X extends [9:50][50]scala.AnyRef { + [50]def <init>(): [9]X.type = [50]{ + [50][50][50]X.super.<init>(); + [9]() + }; + [17:30]private[this] val d: [21]D = [25:30][25:30][25:30]new [29:30]D(); + [21]<stable> <accessor> def d: [21]D = [21][21]X.this.d; + [37:38][37:38][37]X.this.d.selectDynamic(<39:44>"field") + } +} + diff --git a/test/files/run/dynamic-selectDynamic.scala b/test/files/run/dynamic-selectDynamic.scala new file mode 100644 index 0000000000..bd6c138c50 --- /dev/null +++ b/test/files/run/dynamic-selectDynamic.scala @@ -0,0 +1,25 @@ +import scala.tools.partest.DirectTest + +object Test extends DirectTest { + + override def extraSettings: String = + s"-usejavacp -Xprint-pos -Xprint:typer -Yrangepos -Ystop-after:typer -d ${testOutput.path}" + + override def code = """ + object X { + val d = new D + d.field + } + """.trim + + override def show(): Unit = { + Console.withErr(System.out) { + compile() + } + } +} + +import language.dynamics +class D extends Dynamic { + def selectDynamic(name: String) = ??? +} diff --git a/test/files/run/dynamic-updateDynamic.check b/test/files/run/dynamic-updateDynamic.check new file mode 100644 index 0000000000..154fea34cb --- /dev/null +++ b/test/files/run/dynamic-updateDynamic.check @@ -0,0 +1,14 @@ +[[syntax trees at end of typer]] // newSource1.scala +[0:69]package [0:0]<empty> { + [0:69]object X extends [9:69][69]scala.AnyRef { + [69]def <init>(): [9]X.type = [69]{ + [69][69][69]X.super.<init>(); + [9]() + }; + [17:30]private[this] val d: [21]D = [25:30][25:30][25:30]new [29:30]D(); + [21]<stable> <accessor> def d: [21]D = [21][21]X.this.d; + [37:49][37:38][37:38][37]X.this.d.updateDynamic(<39:44>"field")([47:49]10); + [56:57][56:57][56]X.this.d.selectDynamic(<58:63>"field") + } +} + diff --git a/test/files/run/dynamic-updateDynamic.scala b/test/files/run/dynamic-updateDynamic.scala new file mode 100644 index 0000000000..80fe0ea35f --- /dev/null +++ b/test/files/run/dynamic-updateDynamic.scala @@ -0,0 +1,28 @@ +import scala.tools.partest.DirectTest + +object Test extends DirectTest { + + override def extraSettings: String = + s"-usejavacp -Xprint-pos -Xprint:typer -Yrangepos -Ystop-after:typer -d ${testOutput.path}" + + override def code = """ + object X { + val d = new D + d.field = 10 + d.field + } + """.trim + + override def show(): Unit = { + Console.withErr(System.out) { + compile() + } + } +} + +import language.dynamics +class D extends Dynamic { + def selectDynamic(name: String): Any = ??? + def updateDynamic(name: String)(value: Any): Unit = ??? +} + |