internal FieldSymbol GetHostObjectField()
        {
            if ((object)_hostObjectField != null)
            {
                return(_hostObjectField);
            }

            var hostObjectTypeSymbol = _compilation.GetHostObjectTypeSymbol();

            if (
                (object)hostObjectTypeSymbol != null &&
                hostObjectTypeSymbol.Kind != SymbolKind.ErrorType
                )
            {
                return(_hostObjectField = new SynthesizedFieldSymbol(
                           _declaringSubmissionClass,
                           hostObjectTypeSymbol,
                           "<host-object>",
                           isPublic: false,
                           isReadOnly: true,
                           isStatic: false
                           ));
            }

            return(null);
        }