Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Miguel Torres <jostor@microsoft.com>2020-01-15 18:42:47 +0300
committerGitHub <noreply@github.com>2020-01-15 18:42:47 +0300
commitc184d75660dd662d53cd741d0f52459e8f6b2506 (patch)
treef4639ecbb6a9a587f2826b1a16e5516814678227
parent173d2294466251e76c910738060bd94692d75cfa (diff)
parent6dde048f6eafa777a7d9518444fbe787710e8626 (diff)
Merge pull request #9493 from mono/condprop-immutable-array
Switch ConditionedPropertyCollection to use ImmutableArray
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs30
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs2
2 files changed, 16 insertions, 16 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs
index ec1c010046..bd43f395e7 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs
@@ -33,8 +33,8 @@ namespace MonoDevelop.Projects
{
public class ConditionedPropertyCollection
{
- Dictionary<string, ImmutableList<string>> props = new Dictionary<string, ImmutableList<string>> ();
- Dictionary<KeySet, ImmutableList<ValueSet>> combinedProps = new Dictionary<KeySet, ImmutableList<ValueSet>> (StructEqualityComparer<KeySet>.Instance);
+ Dictionary<string, ImmutableArray<string>> props = new Dictionary<string, ImmutableArray<string>> ();
+ Dictionary<KeySet, ImmutableArray<ValueSet>> combinedProps = new Dictionary<KeySet, ImmutableArray<ValueSet>> (StructEqualityComparer<KeySet>.Instance);
/// <summary>
/// A set of strings, which can be compared to other sets ignoring the order.
@@ -178,14 +178,14 @@ namespace MonoDevelop.Projects
foreach (var e in other.props) {
var otherList = e.Value;
var key = e.Key;
- ImmutableList<string> list;
+ ImmutableArray<string> list;
if (props.TryGetValue (key, out list)) {
var lb = list.ToBuilder ();
foreach (var c in otherList) {
if (!lb.Contains (c))
lb.Add (c);
}
- props [key] = lb.ToImmutableList ();
+ props [key] = lb.ToImmutable ();
} else
props [key] = otherList;
}
@@ -193,7 +193,7 @@ namespace MonoDevelop.Projects
foreach (var e in other.combinedProps) {
var otherList = e.Value;
var key = e.Key;
- ImmutableList<ValueSet> thisList;
+ ImmutableArray<ValueSet> thisList;
if (combinedProps.TryGetValue (key, out thisList)) {
var list = thisList.ToBuilder ();
foreach (var c in otherList) {
@@ -210,13 +210,13 @@ namespace MonoDevelop.Projects
internal void AddPropertyValues (IList<string> names, IList<string> values)
{
var key = new KeySet (names);
- ImmutableList<ValueSet> list;
+ ImmutableArray<ValueSet> list;
ValueSet valueSet;
// First register the combination of values
if (!combinedProps.TryGetValue (key, out list)) {
- list = ImmutableList<ValueSet>.Empty;
+ list = ImmutableArray<ValueSet>.Empty;
valueSet = new ValueSet (names, names, values);
} else {
// If there is already a list, there must be at least one item.
@@ -229,12 +229,12 @@ namespace MonoDevelop.Projects
// Now register each value individually
- ImmutableList<string> valList;
+ ImmutableArray<string> valList;
for (int n = 0; n < names.Count; n++) {
var name = names [n];
var val = values [n];
if (!props.TryGetValue (name, out valList))
- valList = ImmutableList<string>.Empty;
+ valList = ImmutableArray<string>.Empty;
if (!valList.Contains (val))
props[name] = valList.Add (val);
}
@@ -252,12 +252,12 @@ namespace MonoDevelop.Projects
/// <summary>
/// Gets the values used in conditions for the given property
/// </summary>
- public ImmutableList<string> GetAllPropertyValues (string property)
+ public ImmutableArray<string> GetAllPropertyValues (string property)
{
- ImmutableList<string> list;
+ ImmutableArray<string> list;
if (props.TryGetValue (property, out list))
return list;
- return ImmutableList<string>.Empty;
+ return ImmutableArray<string>.Empty;
}
/// <summary>
@@ -266,12 +266,12 @@ namespace MonoDevelop.Projects
/// Platform, it will return values for those properties specified in conditions that reference both
/// Configuration and Platform.
/// </summary>
- public ImmutableList<ValueSet> GetCombinedPropertyValues (params string[] properties)
+ public ImmutableArray<ValueSet> GetCombinedPropertyValues (params string[] properties)
{
- ImmutableList<ValueSet> list;
+ ImmutableArray<ValueSet> list;
if (combinedProps.TryGetValue (new KeySet (properties), out list))
return list;
- return ImmutableList<ValueSet>.Empty;
+ return ImmutableArray<ValueSet>.Empty;
}
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
index b2fd9b91ad..deb72f980d 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
@@ -2971,7 +2971,7 @@ namespace MonoDevelop.Projects
// Now add configurations for which a platform has not been specified, but only if no other configuration
// exists with the same name. Combine them with individually specified platforms, if available
foreach (var c in confValues.Select (v => v.GetValue ("Configuration"))) {
- if (platValues.Count > 0) {
+ if (platValues.Length > 0) {
foreach (var plat in platValues.Select (v => v.GetValue ("Platform"))) {
var ep = plat == "AnyCPU" ? "" : plat;
if (!configData.Any (cd => cd.Config == c && cd.Platform == ep))