summaryrefslogtreecommitdiff
path: root/test/files/neg/main1.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-08-01 17:46:48 +0000
committerPaul Phillips <paulp@improving.org>2011-08-01 17:46:48 +0000
commitdaa26379ceae60b441f49dab49f367ebea027529 (patch)
tree42ab375e1071ccc625258241f876c1a4d0b75cc7 /test/files/neg/main1.scala
parent8c0fa605fba819d6ad8714a488d404e966d224b3 (diff)
downloadscala-daa26379ceae60b441f49dab49f367ebea027529.tar.gz
scala-daa26379ceae60b441f49dab49f367ebea027529.tar.bz2
scala-daa26379ceae60b441f49dab49f367ebea027529.zip
Working on jar creation infrastructure.
output generation (but only then, since otherwise we're not creating the jar): 1) -Xmain-class foo.Bar will give the jar a Main-Class of foo.Bar 2) Alternatively, if there is only one runnable program, that will be the Main-Class 3) Always, the jar's manifest will have an entry for Scala-Compiler-Version. Not very relatedly, a warning is now issued when a module has a main method but a runnable program will not be generated. Closes SI-4861. This represents an opening step toward automatically recognizing mismatched bytecode situations: coarse, but useful and safe. Review by mirco.
Diffstat (limited to 'test/files/neg/main1.scala')
-rw-r--r--test/files/neg/main1.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/files/neg/main1.scala b/test/files/neg/main1.scala
new file mode 100644
index 0000000000..2b5551ac38
--- /dev/null
+++ b/test/files/neg/main1.scala
@@ -0,0 +1,45 @@
+// negatives
+package foo1 {
+ object Foo { // companion is trait
+ def main(args: Array[String]): Unit = ()
+ }
+ trait Foo
+}
+
+package foo2 {
+ object Foo { // companion has its own main
+ def main(args: Array[String]): Unit = ()
+ }
+ class Foo {
+ def main(args: Array[String]): Unit = ()
+ }
+}
+
+// these should all be made to work, but are negatives for now
+// because forwarders need more work.
+
+package foo3 {
+ object Foo { // Companion contains main, but not an interfering main.
+ def main(args: Array[String]): Unit = ()
+ }
+ class Foo {
+ def main(args: Int): Unit = ()
+ }
+}
+
+package foo4 {
+ object Foo extends Foo { // Inherits main from the class
+ }
+ class Foo {
+ def main(args: Array[String]): Unit = ()
+ }
+}
+
+package foo5 {
+ object Foo extends Foo { // Overrides main from the class
+ override def main(args: Array[String]): Unit = ()
+ }
+ class Foo {
+ def main(args: Array[String]): Unit = ()
+ }
+}