aboutsummaryrefslogtreecommitdiff
path: root/tests/disabled/macro/run/t6379
diff options
context:
space:
mode:
Diffstat (limited to 'tests/disabled/macro/run/t6379')
-rw-r--r--tests/disabled/macro/run/t6379/Macros_1.scala26
-rw-r--r--tests/disabled/macro/run/t6379/Test_2.scala22
2 files changed, 48 insertions, 0 deletions
diff --git a/tests/disabled/macro/run/t6379/Macros_1.scala b/tests/disabled/macro/run/t6379/Macros_1.scala
new file mode 100644
index 000000000..4f3daf497
--- /dev/null
+++ b/tests/disabled/macro/run/t6379/Macros_1.scala
@@ -0,0 +1,26 @@
+import scala.reflect.macros.whitebox._
+import scala.language.experimental.macros
+import java.io._
+
+object Macros {
+ def impl(c: Context) = {
+ var messages = List[String]()
+ def println(msg: String) = messages :+= msg
+
+ import c.universe._
+ def test(sym: MethodSymbol): Unit = {
+ println(s"uninitialized ${sym.name}: ${sym.exceptions}")
+ sym.info
+ println(s"initialized ${sym.name}: ${sym.exceptions}")
+ }
+
+ println("compile-time")
+ test(typeOf[Closeable].declaration(TermName("close")).asMethod)
+ test(typeOf[Product1[_]].declaration(TermName("productElement")).asMethod)
+ test(c.mirror.staticClass("Reader").info.decl(TermName("read")).asMethod)
+
+ q"..${messages.map(msg => q"println($msg)")}"
+ }
+
+ def foo: Any = macro impl
+} \ No newline at end of file
diff --git a/tests/disabled/macro/run/t6379/Test_2.scala b/tests/disabled/macro/run/t6379/Test_2.scala
new file mode 100644
index 000000000..05bdd5575
--- /dev/null
+++ b/tests/disabled/macro/run/t6379/Test_2.scala
@@ -0,0 +1,22 @@
+import java.io._
+import scala.reflect.runtime.universe._
+
+class Reader(fname: String) {
+ private val in = new BufferedReader(new FileReader(fname))
+ @throws[IOException]("if the file doesn't exist")
+ def read() = in.read()
+}
+
+object Test extends dotty.runtime.LegacyApp {
+ def test(sym: MethodSymbol): Unit = {
+ println(s"uninitialized ${sym.name}: ${sym.exceptions}")
+ sym.info
+ println(s"initialized ${sym.name}: ${sym.exceptions}")
+ }
+
+ Macros.foo
+ println("runtime")
+ test(typeOf[Closeable].decl(TermName("close")).asMethod)
+ test(typeOf[Product1[_]].decl(TermName("productElement")).asMethod)
+ test(typeOf[Reader].decl(TermName("read")).asMethod)
+}