blob: 7c4a3d64d82dc44719099836573cf09d5f858f9e (
plain) (
tree)
|
|
//############################################################################
// Double Definitions
//############################################################################
// $Id$
//############################################################################
// Packages followed by objects/classes with same name
package tic { class Test1; }
package tic { object module1; }
package tic { class Test2; }
// error: object tic would hide package tic
object tic { def fun = 0; }
package tic { class Test3; }
package tic { object module2; }
package tic { class Test4; }
// error: tic.fun does not exist
object Testtic { tic.module1; tic.module2; tic.fun; }
package tac { class Test1; }
package tac { object module1; }
package tac { class Test2; }
// error: case class tac (its factory method) would hide package tac
case class tac { def fun = 0; }
package tac { class Test3; }
package tac { object module2; }
package tac { class Test4; }
// error: tac().fun does not exits
object Testtac { tac.module1; tac.module2; tac().fun; (new tac).fun; }
package toc { class Test1; }
package toc { object module1; }
package toc { class Test2; }
class toc { def fun = 0; }
package toc { class Test3; }
package toc { object module2; }
package toc { class Test4; }
object Testtoc { toc.module1; toc.module2; (new toc).fun; }
//############################################################################
// Objects/Classes followed by packages with same name
object mic { def fun = 0; }
// error: package mic would hide object mic
package mic { object module; }
// error: mic.module does not exist
object Testmic { mic.module; mic.fun; }
case class mac { def fun = 0; }
// error: package mac would hide case class mac (its factory method)
package mac { object module; }
// error: mac.module does not exist
object Testmac { mac.module; mac().fun; (new mac).fun; }
class moc { def fun = 0; }
package moc { object module; }
object Testmoc { moc.module; (new moc).fun; }
//############################################################################
// Objects followed by Objects/Classes with same name
object bic { def fun1 = 0; }
// error: object bic redefines object bic
object bic { def fun2 = 0; }
// error: bic.fun1 does not exist
object Testbic { bic.fun1; bic.fun2; }
object bac { def fun1 = 0; }
// error: case class bac (its factory method) replaces object bac
case class bac { def fun2 = 0; }
// error: bac.fun1 does not exist
object Testbac { bac.fun1; bac().fun2; (new bac).fun2; }
object boc { def fun1 = 0; }
class boc { def fun2 = 0; }
object Testboc { boc.fun1; (new boc).fun2; }
//############################################################################
// Case classes followed by Objects/Classes with same name
case class cic { def fun1 = 0; }
// error: object cic replaces case class cic (its factory method)
object cic { def fun2 = 0; }
// error: cic().fun1 does not exist
object Testcic { cic().fun1; (new cic).fun1; cic.fun2; }
case class cac { def fun1 = 0; }
// error: case class cac redefines case class cac
case class cac { def fun2 = 0; }
// error: cac().fun1 does not exist
// error: (new cac).fun1 does not exist
object Testcac { cac().fun1; (new cac).fun1; cac().fun2; (new cac).fun2; }
case class coc { def fun1 = 0; }
// error: class coc redefines case class coc
class coc { def fun2 = 0; }
// error: (new coc).fun1 does not exist
object Testcoc { coc().fun1; (new coc).fun1; (new coc).fun2; }
//############################################################################
// Classes followed by Objects/Classes with same name
class dic { def fun1 = 0; }
object dic { def fun2 = 0; }
object Testdic { (new dic).fun1; dic.fun2; }
class dac { def fun1 = 0; }
// error: case class dac redefines class dac
case class dac { def fun2 = 0; }
// error: (new dac).fun1 does not exist
object Testdac { (new dac).fun1; dac().fun2; (new dac).fun2; }
class doc { def fun1 = 0; }
// error: class doc redefines class doc
class doc { def fun2 = 0; }
// error: (new doc).fun1 does not exist
object Testdoc { (new doc).fun1; (new doc).fun2; }
//############################################################################
|