Why is this not recognizing as a gameobject?

I have a C# script and at the top is the following code:

public class GameStartScript : MonoBehaviour {

    public int width; //Width of playing field
    public int height; //Height of playing field

    public GameObject tile;

    List<Tile> tiles = new List<Tile>();

    // Use this for initialization
    void Start () {
    ...

But for some reason, when I attach this to an empty gameobject, it will only let me specify width and height but not the GameObject? I've used public GameObject name; lots of times before and it works fine but for this, it's just not giving me the option to choose anything which is now generating errors when I run my program.

Any advice?

Nothing is wrong with that code (except for putting = new List... outside of a function, which is unpredictable, but that's not the problem in question). You should be able to put it in a new project and see for yourself. My guess would be that you have other compile errors, so you just changed this recently, and it won't be allowed to finish compiling until you fix all of your other errors.