コード例 #1
0
ファイル: statement.cs プロジェクト: tgiphil/mono
		protected bool CheckParentConflictName (ToplevelBlock block, string name, Location l)
		{
			LocalInfo vi = GetLocalInfo (name);
			if (vi != null) {
				block.Report.SymbolRelatedToPreviousError (vi.Location, name);
				if (Explicit == vi.Block.Explicit) {
					Error_AlreadyDeclared (l, name, null);
				} else {
					Error_AlreadyDeclared (l, name, this is ToplevelBlock ?
						"parent or current" : "parent");
				}
				return false;
			}

			if (block != null) {
				var tblock = block.CheckParameterNameConflict (name);
				if (tblock != null) {
					if (block == tblock && block is Linq.QueryBlock)
						Error_AlreadyDeclared (loc, name);
					else
						Error_AlreadyDeclared (loc, name, "parent or current");

					return false;
				}
			}

			return true;
		}