a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
111 lines
2.2 KiB
C#
111 lines
2.2 KiB
C#
//
|
|
// This tests only checks if we can compile the program.
|
|
//
|
|
// The trick is that we are accessing a protected property, with the way
|
|
// mcs deals with properties in two steps (property first, method next)
|
|
// this text excercises some eager optimizations in the TypeManager.FilterWithClosure.
|
|
//
|
|
//
|
|
// The second class excercises accessing private members from a container class
|
|
//
|
|
// The third class excercises accessing a private/protected value on an instance of
|
|
// a child
|
|
|
|
using System;
|
|
using System.Collections;
|
|
|
|
class ProtectedAccessToPropertyOnChild : Hashtable {
|
|
|
|
ProtectedAccessToPropertyOnChild ()
|
|
{
|
|
comparer = null;
|
|
}
|
|
|
|
public static int Main ()
|
|
{
|
|
TestAccessToProtectedOnChildInstanceFromParent t = new TestAccessToProtectedOnChildInstanceFromParent ();
|
|
|
|
if (t.Test () != 0)
|
|
return 1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
}
|
|
|
|
//
|
|
// Again, only for compiling reasons
|
|
//
|
|
public class TestAccessToPrivateMemberInParentClass
|
|
{
|
|
double[][] data;
|
|
int rows;
|
|
int columns;
|
|
|
|
public TestAccessToPrivateMemberInParentClass()
|
|
{
|
|
}
|
|
|
|
double[][] Array
|
|
{
|
|
get { return data; }
|
|
}
|
|
|
|
class CholeskyDecomposition
|
|
{
|
|
TestAccessToPrivateMemberInParentClass L;
|
|
bool isSymmetric;
|
|
bool isPositiveDefinite;
|
|
|
|
public CholeskyDecomposition(TestAccessToPrivateMemberInParentClass A)
|
|
{
|
|
L = new TestAccessToPrivateMemberInParentClass();
|
|
|
|
double[][] a = A.Array;
|
|
double[][] l = L.Array;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class TestAccessToProtectedOnChildInstanceFromParent {
|
|
|
|
class Parent {
|
|
protected int a;
|
|
|
|
static int x;
|
|
|
|
protected Parent ()
|
|
{
|
|
a = x++;
|
|
}
|
|
|
|
public int TestAccessToProtected (Child c)
|
|
{
|
|
if (c.a == 0)
|
|
return 1;
|
|
else
|
|
return 2;
|
|
}
|
|
}
|
|
|
|
class Child : Parent {
|
|
|
|
}
|
|
|
|
Child c, d;
|
|
|
|
public TestAccessToProtectedOnChildInstanceFromParent ()
|
|
{
|
|
c = new Child ();
|
|
d = new Child ();
|
|
}
|
|
|
|
public int Test ()
|
|
{
|
|
if (d.TestAccessToProtected (c) == 1)
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
}
|