A type or variable was expected?

It says that an expression denotes a type where variable, value, or method group was expected on line 26. Does it mean the x in my array?

using UnityEngine;
using System.Collections.Generic;

public class Inventory : MonoBehaviour {
	//holds weapons
	public WeaponAndArmor[] weapons;
	//holds health items
	public int[] healthItem = new int[0];

	List<WeaponAndArmor> mainInventory = new List<WeaponAndArmor>();

	void Start(){

		mainInventory.Add (weapons[0]);
		//Make this print out in a chatbox system for only you to see
		Debug.Log (mainInventory [0].name);


	void OnGUI(){
		for (int x = 0; x < mainInventory.Count; x++) {
                    //problem is on the line below here
			if(GUI.Button(Rect(Screen.width/2, Screen.height/2 + (20* x), 100, 20)));

	//All of the different types of items you can have set in classes
	// | | | | | | | | | | 
	// v v v v v v v v v v
	public class WeaponAndArmor{

		public string name;
		public string description;
		public Texture2D icon;
		public bool equiped;
		public float speed;
		public int damage;
		public enum itemType {


		//make functions and other that tells what the above variables do if used

C# requires that you use “new” when declaring new classes or structs such as Rect.