diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-05-09 20:49:02 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-05-09 20:49:02 +0200 |
commit | 7289a263475a3c789df35e999931902acf08c0d5 (patch) | |
tree | 17654c3e1279305a90fabd450bf810e0817e8cd2 /test | |
parent | 7523ed37d5a4eeb2664f9ddf2cad09b70aa81877 (diff) | |
parent | 068d2c06bf43a9a8cf74529929c1640e1db9a338 (diff) | |
download | scala-7289a263475a3c789df35e999931902acf08c0d5.tar.gz scala-7289a263475a3c789df35e999931902acf08c0d5.tar.bz2 scala-7289a263475a3c789df35e999931902acf08c0d5.zip |
Merge pull request #3734 from retronym/topic/master-to-2.11.x-2
Merge master to 2.11.x
Diffstat (limited to 'test')
-rw-r--r-- | test/files/run/t5905-features.flags | 1 | ||||
-rw-r--r-- | test/files/run/t5905-features.scala | 29 | ||||
-rw-r--r-- | test/files/run/t5905b-features.check | 1 | ||||
-rw-r--r-- | test/files/run/t5905b-features.scala | 15 |
4 files changed, 46 insertions, 0 deletions
diff --git a/test/files/run/t5905-features.flags b/test/files/run/t5905-features.flags new file mode 100644 index 0000000000..ad51758c39 --- /dev/null +++ b/test/files/run/t5905-features.flags @@ -0,0 +1 @@ +-nowarn diff --git a/test/files/run/t5905-features.scala b/test/files/run/t5905-features.scala new file mode 100644 index 0000000000..a3848eef2a --- /dev/null +++ b/test/files/run/t5905-features.scala @@ -0,0 +1,29 @@ + +import tools.partest.DirectTest + +// verify that all languageFeature names are accepted by -language +object Test extends DirectTest { + override def code = "class Code { def f = (1 to 10) size }" // exercise a feature + + override def extraSettings = s"-usejavacp -d ${testOutput.path}" + + override def show() = { + val global = newCompiler("-language:postfixOps", "-Ystop-after:typer") + compileString(global)(code) + import global._ + exitingTyper { + //def isFeature(s: Symbol) = s.annotations.exists((a: AnnotationInfo) => a.tpe <:< typeOf[scala.annotation.meta.languageFeature]) + def isFeature(s: Symbol) = s hasAnnotation definitions.LanguageFeatureAnnot + val langf = definitions.languageFeatureModule.typeSignature + val feats = langf.declarations filter (s => isFeature(s)) map (_.name.decoded) + val xmen = langf.member(TermName("experimental")).typeSignature.declarations filter (s => isFeature(s)) map (s => s"experimental.${s.name.decoded}") + val all = (feats ++ xmen) mkString "," + + assert(feats.nonEmpty, "Test must find feature flags.") + + //dynamics,postfixOps,reflectiveCalls,implicitConversions,higherKinds,existentials,experimental.macros + compile(s"-language:$all") + } + } +} + diff --git a/test/files/run/t5905b-features.check b/test/files/run/t5905b-features.check new file mode 100644 index 0000000000..08c76d74aa --- /dev/null +++ b/test/files/run/t5905b-features.check @@ -0,0 +1 @@ +'noob' is not a valid choice for '-language' diff --git a/test/files/run/t5905b-features.scala b/test/files/run/t5905b-features.scala new file mode 100644 index 0000000000..627df8334b --- /dev/null +++ b/test/files/run/t5905b-features.scala @@ -0,0 +1,15 @@ + +import tools.partest.DirectTest + +// verify that only languageFeature names are accepted by -language +object Test extends DirectTest { + override def code = "class Code" + + override def extraSettings = s"-usejavacp -d ${testOutput.path}" + + override def show() = { + //compile("-language", "--") // no error + compile(s"-language:noob") + } +} + |