From 7daf045076640b65ba82693a3b01c1b911601073 Mon Sep 17 00:00:00 2001 From: CyrusNajmabadi Date: Mon, 25 Jul 2016 15:54:27 -0700 Subject: [PATCH] Validate invariant. --- .../FindReferences/DefinitionsAndReferences.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/Features/Core/Portable/FindReferences/DefinitionsAndReferences.cs b/src/Features/Core/Portable/FindReferences/DefinitionsAndReferences.cs index 13d8d3873cd..f4ad08d3d5c 100644 --- a/src/Features/Core/Portable/FindReferences/DefinitionsAndReferences.cs +++ b/src/Features/Core/Portable/FindReferences/DefinitionsAndReferences.cs @@ -1,6 +1,8 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Immutable; +using Roslyn.Utilities; namespace Microsoft.CodeAnalysis.FindReferences { @@ -29,6 +31,18 @@ internal struct DefinitionsAndReferences ImmutableArray definitions, ImmutableArray references) { + var definitionSet = definitions.ToSet(); + for (int i = 0, n = references.Length; i < n; i++) + { + var reference = references[i]; + + if (!definitionSet.Contains(reference.Definition)) + { + throw new ArgumentException( + $"{nameof(references)}[{i}].{nameof(reference.Definition)} not found in '{nameof(definitions)}'"); + } + } + Definitions = definitions; References = references; } -- GitLab