Nice/testsuite/compiler/classes field-override-packages.testsuite,NONE,1.1

Arjan Boeijink <[email protected]> Thu, 07 Apr 2005 17:03:48 +0000
Newsgroups gmane.comp.lang.nice.cvs
Message-ID <[email protected]>
Update of /cvsroot/nice/Nice/testsuite/compiler/classes
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18169/F:/nice/testsuite/compiler/classes

Added Files:
	field-override-packages.testsuite 
Log Message:
Testcases for field override across packages (including one bug testcase).

--- NEW FILE: field-override-packages.testsuite ---
/// PASS
  /// package a
  /// Toplevel
class A
{
  final A x;
}
  /// package b import a
  /// Toplevel
class B extends A
{
  override B x;
}

/// PASS
  /// package a
  /// Toplevel
class A
{
  final A x;
}
  /// package b import a
  /// Toplevel
class B extends A
{
  override B x;
}
  /// package c import b
  /// Toplevel
class C extends B
{
  override C x;
}

/// FAIL
  /// package a
  /// Toplevel
class A
{
  final A x;
}
  /// package b import a
  /// Toplevel
class B extends A
{
  override String /* /// FAIL HERE */ x;
}

/// PASS
  /// package a
  /// Toplevel
  class A {
    final ?String s;
  }
  /// package b import a
  /// Toplevel
  class B extends A {
    override String s = "abc";
  }

/// FAIL
  /// package a
  /// Toplevel
class A<T>
{
  final List<T> x;
}
  /// package b import a
  /// Toplevel

class B<T> extends A<T>
{
  override List<String> /* /// FAIL HERE */ x;
}

/// PASS
  /// package a
  /// Toplevel
class A {
  final String x = "abc";
}
  /// package b import a
  assert new A().x.equals("abc");
  assert new B().x.equals("xyz");
  /// Toplevel
class B extends A {
  override x = "xyz";
}

/// FAIL
  /// package a
  /// Toplevel
class A {
  int x;
}
  /// package b import a
  /// Toplevel
class B extends A {
  override /* /// FAIL HERE */ x = "abc";
}

/// PASS bug
  /// package a
  /// Toplevel
class A {
  final int x;
}
  /// package b import a
  /// Toplevel
class B extends A {
  override byte x = 0;
}
  /// package c import b
  assert new C().x == 5;
  /// Toplevel
class C extends B {
  override x = 5;
}

/// FAIL
  /// package a
  /// Toplevel
class A {
  final int x;
}
  /// package b import a
  /// Toplevel
class B extends A {
  override byte x = 0;
}
  /// package c import b
  /// Toplevel
class C extends B {
  override /* /// FAIL HERE */ x = 1000;
}



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click