'UnityEngine.Networking.Match.MatchDesc' is inaccessible due to its protection level (CS0122) (Assembly-CSharp)

I just copied an example of a matchmaker script from Unity manual (wich is actually pasted below), but MonoDevelop points on a mistake "is inaccessible due to its protection level (CS0122) " and on “Error CS0052: Inconsistent accessibility”. I changed literally nothing, just attempted to compile an example code. How to solve it?
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.Networking.Types;
using UnityEngine.Networking.Match;
using System.Collections.Generic;

public class HostGame : MonoBehaviour
{
	List<MatchDesc> matchList = new List<MatchDesc>(); /* First cs0122 error + Error CS0052: Inconsistent accessibility: field type 'System.Collections.Generic.List<UnityEngine.Networking.Match.MatchDesc>' is less accessible than field 'HostGame.matchList' (CS0052) (Assembly-CSharp)*/
	bool matchCreated;
	NetworkMatch networkMatch;

	void Awake()
	{
		networkMatch = gameObject.AddComponent<NetworkMatch>();
	}

	void OnGUI()
	{
		// You would normally not join a match you created yourself but this is possible here for demonstration purposes.
		if(GUILayout.Button("Create Room"))
		{
			CreateMatchRequest create = new CreateMatchRequest();
			create.name = "NewRoom";
			create.size = 4;
			create.advertise = true;
			create.password = "";

			networkMatch.CreateMatch(create, OnMatchCreate);
		}

		if (GUILayout.Button("List rooms"))
		{
			networkMatch.ListMatches(0, 20, "", OnMatchList);
		}

		if (matchList.Count > 0)
		{
			GUILayout.Label("Current rooms");
		}
		foreach (var match in matchList)
		{
			if (GUILayout.Button(match.name))
			{
				networkMatch.JoinMatch(match.networkId, "", OnMatchJoined);
			}
		}
	}

	public void OnMatchCreate(CreateMatchResponse matchResponse) //Second error(a combination of two previous) 
	{
		if (matchResponse.success)
		{
			Debug.Log("Create match succeeded");
			matchCreated = true;
			Utility.SetAccessTokenForNetwork(matchResponse.networkId, new NetworkAccessToken(matchResponse.accessTokenString));
			NetworkServer.Listen(new MatchInfo(matchResponse), 9000);
		}
		else
		{
			Debug.LogError ("Create match failed");
		}
	}

	public void OnMatchList(ListMatchResponse matchListResponse) //third error
	{
		if (matchListResponse.success && matchListResponse.matches != null)
		{
			networkMatch.JoinMatch(matchListResponse.matches[0].networkId, "", OnMatchJoined);
		}
	}

	public void OnMatchJoined(JoinMatchResponse matchJoin)
	{
		if (matchJoin.success)
		{
			Debug.Log("Join match succeeded");
			if (matchCreated)
			{
				Debug.LogWarning("Match already set up, aborting...");
				return;
			}
			Utility.SetAccessTokenForNetwork(matchJoin.networkId, new NetworkAccessToken(matchJoin.accessTokenString));
			NetworkClient myClient = new NetworkClient();
			myClient.RegisterHandler(MsgType.Connect, OnConnected);
			myClient.Connect(new MatchInfo(matchJoin));
		}
		else
		{
			Debug.LogError("Join match failed");
		}
	}

	public void OnConnected(NetworkMessage msg)
	{
		Debug.Log("Connected!");
	}
}

Here is the guide to update the API calls. The guide is very good, showing examples how to replace old code with the new API calls.

Hi @Masurk! This sounds like a page in the documentation was not updated. Could you please file a bug report (and select Documentation from the drop-down) specifying exactly which page this is on. This page in the docs claims that MatchDesc is now MatchInfoSnapshot