<?xml version="1.0"?>
<ErrorDocumentation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ErrorName>CS0188</ErrorName>
  <Examples>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 8

struct Sample
{
	public Sample (int arg)
	{
		text = this.Prop;
	}
	
	int Prop { get { return 1; } }

	public int text;
}</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 10

struct B
{
	public int a;

	public B (int foo)
	{
		Test (this);
		a = 1;
	}

	static void Test (B b)
	{
	}
}</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 8

struct Sample
{
	public Sample (int arg)
	{
		text = base.ToString ();
	}

	internal string text;
}</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 6

struct Sample {
        public Sample(string text) {
            Initialize();
            this.text = text;
        }

        void Initialize() {
        }
        
        public string text;
}</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 10

struct B
{
	public int a;

	public B (int foo)
	{
		Test ();
	}

	public void Test ()
	{
	}
}</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 10

public struct Test
{
	internal int x;

	public Test (int x)
	{
		X = x;
	}

	public int X
	{
		get { return x; }
		set { x = value; }
	}
}
</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 16

struct Foo
{
	public int bar;
	public int baz;

	public int this [int i] {
		get { return bar; }
	}

	public Foo (int baz)
	{
		this.baz = baz;
		bar = this [2] - 1;
	}
}
</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 10

struct S
{
	public int x;
	
	S (dynamic d)
	{
		Foo (d);
		x = 44;
	}

	void Foo (int a)
	{
	}
}
</string>
    <string>// CS0188: The `this' object cannot be used before all of its fields are assigned to
// Line: 16

struct Foo
{
	public int bar;
	public int baz;

	public int Bar {
		get { return bar; }
	}

	public Foo (int baz)
	{
		this.baz = baz;
		bar = Bar - 1;
	}
}
</string>
  </Examples>
</ErrorDocumentation>