public struct S
{
- int private_value;
+ internal int private_value;
public void Test ()
{
struct Rectangle
{
- int x;
+ internal int x;
public int X {
set { }
}
struct S
{
- string pp;
+ public string pp;
public void Test ()
{
struct A
{
- private long b;
- private float c;
+ public long b;
+ public float c;
public A (int foo)
{
struct S
{
- event EventHandler ev;
+ public event EventHandler ev;
public S (int i)
{
public struct Test
{
- private int x;
+ internal int x;
public Test (int x)
{
// Line: 13
public struct S<TKey> {
- private TKey key;
+ internal TKey key;
public TKey Key {
get { return key; }
struct S
{
- string value;
+ internal string value;
public S (int arg)
{
+++ /dev/null
-// CS0177: The out parameter `parameterModifiers' must be assigned to before control leaves the current method
-// Line: 13
-
-using System;
-using System.Reflection;
-
-class Program
-{
- bool GetArgsForCall (object [] originalArgs, out ParameterModifier parameterModifiers)
- {
- int countOfArgs = originalArgs.Length;
- if (countOfArgs == 0)
- return false;
-
- parameterModifiers = new ParameterModifier (countOfArgs);
- return true;
- }
-}
struct S
{
- int x;
+ public int x;
S (dynamic d)
{
struct Foo
{
- int bar;
- int baz;
+ public int bar;
+ public int baz;
public int Bar {
get { return bar; }
struct Foo
{
- int bar;
- int baz;
+ public int bar;
+ public int baz;
public int this [int i] {
get { return bar; }
text = base.ToString ();
}
- string text;
+ internal string text;
}
\ No newline at end of file
public struct Test
{
- private int x;
+ internal int x;
public Test (int x)
{
int Prop { get { return 1; } }
- int text;
+ public int text;
}
\ No newline at end of file
public struct S
{
public int A { get; private set;}
- event EventHandler eh;
+ public event EventHandler eh;
public S (int a)
{
void Initialize() {
}
- string text;
+ public string text;
}
\ No newline at end of file
if ((name_entry.Modifiers & Modifiers.STATIC) != 0)
continue;
+ //
+ // Ignore user private fields for definite assignment. This is sort of unexpected but
+ // rationale is to have consistent results when using reference assemblies which don't
+ // include any private fields and full assemblies
+ //
+ if ((name_entry.Modifiers & (Modifiers.PRIVATE | Modifiers.BACKING_FIELD)) == Modifiers.PRIVATE)
+ continue;
+
//
// Fixed size buffers are not subject to definite assignment checking
//
--- /dev/null
+using System;
+
+// C#6 change
+
+struct S1
+{
+ S2 s2;
+
+ public S1 (int arg)
+ {
+ }
+}
+
+struct S2
+{
+ int field;
+}
+
+class X
+{
+ public static void Main ()
+ {
+ }
+}
\ No newline at end of file
</method>\r
</type>\r
</test>\r
+ <test name="test-888.cs">\r
+ <type name="S1">\r
+ <method name="Void .ctor(Int32)" attrs="6278">\r
+ <size>2</size>\r
+ </method>\r
+ </type>\r
+ <type name="X">\r
+ <method name="Void Main()" attrs="150">\r
+ <size>2</size>\r
+ </method>\r
+ <method name="Void .ctor()" attrs="6278">\r
+ <size>7</size>\r
+ </method>\r
+ </type>\r
+ </test>\r
<test name="test-89.cs">\r
<type name="X">\r
<method name="X F(Int32)" attrs="145">\r