227 references to OneOrMany
Microsoft.CodeAnalysis (19)
Collections\ArrayBuilderExtensions.cs (2)
20var result = OneOrMany.Create(builder[0]); 26return OneOrMany.Create(builder.ToImmutableAndFree());
Collections\OrderPreservingMultiDictionary.cs (2)
162return valueSet.Count == 1 ? OneOrMany.Create(valueSet[0]) : OneOrMany.Create(valueSet.Items);
MetadataReference\AssemblyIdentityMap.cs (1)
104_map[identity.Name] = _map.TryGetValue(identity.Name, out sameName) ? sameName.Add(pair) : OneOrMany.Create(pair);
SourceGeneration\Nodes\NodeStateTable.cs (4)
340_states.Add(new TableEntry(OneOrMany.Create(chosen), state)); 451_states.Add(new TableEntry(OneOrMany.Create(value), state)); 458var tableEntry = new TableEntry(OneOrMany.Create(values), state); 652return new TableEntry(OneOrMany.Create(itemBuilder.ToImmutableArray()), s_allCachedEntries, anyRemoved: false);
src\Dependencies\Collections\OneOrMany.cs (9)
95=> HasOneItem ? OneOrMany.Create(_one, item) : 96IsEmpty ? OneOrMany.Create(item) : 97OneOrMany.Create(_many.Add(item)); 121return OneOrMany.Create(_many.WhereAsArray(static (value, item) => !EqualityComparer<T>.Default.Equals(value, item), item)); 127OneOrMany.Create(selector(_one)) : 128OneOrMany.Create(_many.SelectAsArray(selector)); 134OneOrMany.Create(selector(_one, arg)) : 135OneOrMany.Create(_many.SelectAsArray(selector, arg)); 207=> SequenceEqual(OneOrMany.Create(other), comparer);
src\Dependencies\Collections\TemporaryArray`1.cs (1)
290var result = OneOrMany.Create(this[0]);
Microsoft.CodeAnalysis.CSharp (104)
Binder\Semantics\OverloadResolution\OverloadResolution.cs (2)
1905resultsByContainingType[containingType] = OneOrMany.Create(result); 1919resultsByContainingType.Add(containingType, OneOrMany.Create(result));
Compilation\CSharpCompilation.cs (4)
1075builder[path] = builder.ContainsKey(path) ? builder[path].Add(tree) : OneOrMany.Create(tree); 1101builder[hash] = builder.TryGetValue(hash, out var existing) ? existing.Add(tree) : OneOrMany.Create(tree); 1127builder[path] = builder.ContainsKey(path) ? builder[path].Add(tree) : OneOrMany.Create(tree); 2484addValueFactory: static (key, newValue) => OneOrMany.Create(newValue),
Compilation\CSharpSemanticModel.cs (47)
338return GetCrefSymbolInfo(OneOrMany.Create(symbols), options, hasParameterList); 729return crefSymbols.IsDefault ? SymbolInfo.None : GetCrefSymbolInfo(OneOrMany.Create(crefSymbols), SymbolInfoOptions.DefaultOptions, hasParameterList: false); 2340symbols = OneOrMany.Create(originalErrorSymbol.CandidateSymbols); 3386return OneOrMany.Create(expr.Symbols); 3397return OneOrMany.Create(expr.Symbols); 3424symbols = OneOrMany.Create(originalErrorType.CandidateSymbols); 3428symbols = OneOrMany.Create(typeSymbol); 3470symbols = OneOrMany.Create<Symbol>(invocation.FunctionPointer); 3499symbols = originalIndexersOpt.IsDefault ? OneOrMany.Create<Symbol>(indexerAccess.Indexer) : StaticCast<Symbol>.From(OneOrMany.Create(originalIndexersOpt)); 3519symbols = OneOrMany.Create<Symbol>(methodSymbol); 3531symbols = OneOrMany.Create<Symbol>(parentOperator.Event); 3544symbols = OneOrMany.Create<Symbol>(ReducedExtensionMethodSymbol.Create(symbol)); 3617symbols = OneOrMany.Create(candidateSymbols); 3641symbols = OneOrMany.Create(memberGroup); 3649symbols = OneOrMany.Create(memberGroup); 3657symbols = OneOrMany.Create(memberGroup); 3669symbols = OneOrMany.Create(memberGroup); 3679symbols = OneOrMany.Create<Symbol>(boundObjectCreation.Constructor); 3683symbols = StaticCast<Symbol>.From(OneOrMany.Create(boundObjectCreation.ConstructorsGroup)); 3698symbols = thisParam != null ? OneOrMany.Create<Symbol>(thisParam) : OneOrMany<Symbol>.Empty; 3707symbols = OneOrMany.Create<Symbol>(fromEndIndexExpression.MethodOpt); 3717symbols = OneOrMany.Create<Symbol>(rangeExpression.MethodOpt); 3726symbols = OneOrMany.Create(symbol); 3821symbols = OneOrMany.Create<Symbol>(new SynthesizedIntrinsicOperatorSymbol(unaryOperator.Operand.Type.StrippedType(), 3845symbols = OneOrMany.Create<Symbol>(new SynthesizedIntrinsicOperatorSymbol(opType, 3878symbols = OneOrMany.Create<Symbol>(new SynthesizedIntrinsicOperatorSymbol(objectType, 3885symbols = OneOrMany.Create(GetIntrinsicOperatorSymbol(op, isDynamic, 3942symbols = OneOrMany.Create(GetIntrinsicOperatorSymbol(op, isDynamic, 3955symbols = OneOrMany.Create(symbolOpt); 3960symbols = StaticCast<Symbol>.From(OneOrMany.Create(originalCandidates)); 4072symbols = OneOrMany.Create<Symbol>(constructorOpt); 4076symbols = StaticCast<Symbol>.From(OneOrMany.Create(candidateConstructors)); 4326symbols = OneOrMany.Create((Symbol)method); 4338symbols = OneOrMany.Create(dynamicInvocation.ApplicableMethods.Cast<MethodSymbol, Symbol>()); 4346symbols = OneOrMany.Create(((BoundBadExpression)boundNodeForSyntacticParent).Symbols.WhereAsArray((sym, myMethodGroup) => myMethodGroup.Contains(sym), myMethodGroup)); 4354symbols = OneOrMany.Create(memberGroup); 4359symbols = OneOrMany.Create(memberGroup); 4374symbols = OneOrMany.Create(memberGroup); 4386symbols = OneOrMany.Create(memberGroup); 4432symbols = OneOrMany.Create<Symbol>(indexer.Indexer); 4438symbols = StaticCast<Symbol>.From(OneOrMany.Create(indexer.OriginalIndexersOpt)); 4447symbols = OneOrMany.Create(((BoundBadExpression)boundNodeForSyntacticParent).Symbols.WhereAsArray((sym, myPropertyGroup) => myPropertyGroup.Contains(sym), myPropertyGroup)); 4463symbols = OneOrMany.Create(propertyGroup); 4471symbols = OneOrMany.Create(propertyGroup); 4802return OneOrMany.Create<Symbol>(method); 4815return OneOrMany.Create<Symbol>(method);
Compilation\SymbolInfoFactory.cs (1)
21=> Create(OneOrMany.Create(symbols.NullToEmpty()), resultKind, isDynamic);
Compilation\SyntaxAndDeclarationManager.LazyState.cs (2)
29/// cref="OneOrMany"/> is a compact array of items, each of which corresponds to the prior type-declaration 36/// (esp. for very large types). The value is stored as a <see cref="OneOrMany"/> as the most common case
Declarations\MergedTypeDeclaration.cs (1)
192return OneOrMany.Create(Declarations[0].NameLocation);
FlowAnalysis\NullableWalker.cs (3)
946return OneOrMany.Create(symbolToInitialize); 997return OneOrMany.Create(requiredMember); 1008var @return = OneOrMany.Create(getFieldSymbolToBeInitialized(property));
Lowering\SyntheticBoundNodeFactory.cs (1)
525OneOrMany.OneOrNone(local),
Symbols\Source\LambdaParameterSymbol.cs (1)
50internal override OneOrMany<SyntaxList<AttributeListSyntax>> GetAttributeDeclarations() => OneOrMany.Create(_attributeLists);
Symbols\Source\LambdaSymbol.cs (1)
277OneOrMany.Create(lambdaSyntax.AttributeLists) :
Symbols\Source\LocalFunctionSymbol.cs (1)
354return OneOrMany.Create(Syntax.AttributeLists);
Symbols\Source\SourceAssemblySymbol.cs (3)
1570LoadAndValidateAttributes(OneOrMany.Create(GetAttributeDeclarations()), ref _lazySourceAttributesBag)) 1678LoadAndValidateAttributes(OneOrMany.Create(GetAttributeDeclarations()), ref attributesBag, attributeMatchesOpt: attributeMatches); 1729OneOrMany.Create(GetAttributeDeclarations()), ref attributesBag,
Symbols\Source\SourceComplexParameterSymbol.cs (2)
523return OneOrMany.Create( 529return OneOrMany.Create(AttributeDeclarationList);
Symbols\Source\SourceConstructorSymbol.cs (2)
210return OneOrMany.Create( 215return OneOrMany.Create(this.AttributeDeclarationSyntaxList);
Symbols\Source\SourceConstructorSymbolBase.cs (1)
168return OneOrMany.Create(default(SyntaxList<AttributeListSyntax>));
Symbols\Source\SourceCustomEventAccessorSymbol.cs (1)
93return OneOrMany.Create(this.AttributeDeclarationSyntaxList);
Symbols\Source\SourceDelegateMethodSymbol.cs (3)
197return OneOrMany.Create(((SourceNamedTypeSymbol)ContainingSymbol).GetAttributeDeclarations()); 233return OneOrMany.Create(default(SyntaxList<AttributeListSyntax>)); 382return OneOrMany.Create(default(SyntaxList<AttributeListSyntax>));
Symbols\Source\SourceDestructorSymbol.cs (2)
149return OneOrMany.Create(this.GetSyntax().AttributeLists); 155return OneOrMany.Create(default(SyntaxList<AttributeListSyntax>));
Symbols\Source\SourceEnumConstantSymbol.cs (1)
94return OneOrMany.Create(this.SyntaxNode.AttributeLists);
Symbols\Source\SourceEventSymbol.cs (2)
245return OneOrMany.Create(this.AttributeDeclarationSyntaxList, implementationPart.AttributeDeclarationSyntaxList); 248return OneOrMany.Create(this.AttributeDeclarationSyntaxList);
Symbols\Source\SourceFieldLikeEventSymbol.cs (2)
301return OneOrMany.Create(customImplementationPart.AttributeDeclarationSyntaxList); 305return OneOrMany.Create(
Symbols\Source\SourceMemberFieldSymbol.cs (1)
426return OneOrMany.Create(GetFieldDeclaration(this.SyntaxNode).AttributeLists);
Symbols\Source\SourceMethodSymbolWithAttributes.cs (1)
176return OneOrMany.Create(default(SyntaxList<AttributeListSyntax>));
Symbols\Source\SourceModuleSymbol.cs (1)
520if (LoadAndValidateAttributes(OneOrMany.Create(mergedAttributes), ref _lazyCustomAttributesBag))
Symbols\Source\SourceNamedTypeSymbol.cs (1)
848if (LoadAndValidateAttributes(OneOrMany.Create(this.GetAttributeDeclarations()), ref _lazyCustomAttributesBag))
Symbols\Source\SourceOrdinaryMethodSymbol.cs (2)
412return OneOrMany.Create(ImmutableArray.Create(AttributeDeclarationSyntaxList, this.SourcePartialImplementation.AttributeDeclarationSyntaxList)); 416return OneOrMany.Create(AttributeDeclarationSyntaxList);
Symbols\Source\SourcePropertyAccessorSymbol.cs (3)
643return OneOrMany.Create(AttributeDeclarationList, ((SourcePropertyAccessorSymbol)implementation).AttributeDeclarationList); 652return OneOrMany.Create(AttributeDeclarationList, ((SourcePropertyAccessorSymbol)definition).AttributeDeclarationList); 655return OneOrMany.Create(AttributeDeclarationList);
Symbols\Source\SourcePropertySymbol.cs (2)
202return OneOrMany.Create( 208return OneOrMany.Create(this.AttributeDeclarationSyntaxList);
Symbols\Source\SourcePropertySymbolBase.cs (1)
476OneOrMany.Create(indexerNameAttributeLists), ref temp, earlyDecodingOnly: true,
Symbols\Source\SourceTypeParameterSymbol.cs (1)
188OneOrMany.Create(this.MergedAttributeDeclarationSyntaxLists),
Symbols\Source\SourceUserDefinedConversionSymbol.cs (1)
126return OneOrMany.Create(this.GetSyntax().AttributeLists);
Symbols\Source\SourceUserDefinedOperatorSymbol.cs (1)
128return OneOrMany.Create(this.GetSyntax().AttributeLists);
Symbols\Source\SynthesizedSourceOrdinaryMethodSymbol.cs (1)
68internal sealed override OneOrMany<SyntaxList<AttributeListSyntax>> GetAttributeDeclarations() => OneOrMany.Create(default(SyntaxList<AttributeListSyntax>));
Symbols\Synthesized\Records\SynthesizedRecordEqualityOperatorBase.cs (1)
56internal sealed override OneOrMany<SyntaxList<AttributeListSyntax>> GetAttributeDeclarations() => OneOrMany.Create(default(SyntaxList<AttributeListSyntax>));
Symbols\Synthesized\Records\SynthesizedRecordPropertySymbol.cs (1)
57=> OneOrMany.Create(BackingParameter.AttributeDeclarationList);
Symbols\Synthesized\SynthesizedEventAccessorSymbol.cs (3)
83return OneOrMany.Create( 90return OneOrMany.Create( 95return OneOrMany.Create(this.AssociatedEvent.AttributeDeclarationSyntaxList);
Microsoft.CodeAnalysis.UnitTests (104)
InternalUtilities\OneOrManyTests.cs (104)
40Verify(OneOrMany.Create(ImmutableArray<int>.Empty)); 47Verify(OneOrMany.Create(1), 1); 48Verify(OneOrMany.Create(ImmutableArray.Create(2)), 2); 49Verify(OneOrMany.Create(ImmutableArray<int>.Empty).Add(3), 3); 58Verify(OneOrMany.OneOrNone(1), 1); 59Verify(OneOrMany.OneOrNone("x"), "x"); 60Verify(OneOrMany.OneOrNone<string>(null)); 66Verify(OneOrMany.Create(ImmutableArray.Create(1, 2, 3)).Add(4), 1, 2, 3, 4); 67Verify(OneOrMany.Create(ImmutableArray.Create(1, 2, 3, 4)), 1, 2, 3, 4); 68Verify(OneOrMany.Create(ImmutableArray<int>.Empty).Add(1).Add(2).Add(3).Add(4), 1, 2, 3, 4); 72Verify(OneOrMany.Create(ImmutableArray.Create(1)).Add(4), 1, 4); 73Verify(OneOrMany.Create(ImmutableArray.Create(1)), 1); 75Verify(OneOrMany.Create(1, 2), 1, 2); 81Assert.True(OneOrMany.Create(1).Contains(1)); 82Assert.False(OneOrMany.Create(1).Contains(0)); 84Assert.False(OneOrMany.Create(ImmutableArray<int>.Empty).Contains(0)); 86Assert.True(OneOrMany.Create(ImmutableArray.Create(1)).Contains(1)); 87Assert.False(OneOrMany.Create(ImmutableArray.Create(1)).Contains(0)); 89Assert.True(OneOrMany.Create(ImmutableArray.Create(1, 2)).Contains(1)); 90Assert.True(OneOrMany.Create(ImmutableArray.Create(1, 2)).Contains(2)); 91Assert.False(OneOrMany.Create(ImmutableArray.Create(1, 2)).Contains(0)); 98Verify(OneOrMany.Create(1).RemoveAll(1)); 99Verify(OneOrMany.Create(2).RemoveAll(1), 2); 100Verify(OneOrMany.Create(1, 2).RemoveAll(1), 2); 101Verify(OneOrMany.Create(1, 2).RemoveAll(2), 1); 102Verify(OneOrMany.Create(1, 1).RemoveAll(1)); 103Verify(OneOrMany.Create(ImmutableArray.Create(1, 1, 1, 2)).RemoveAll(1), 2); 109Verify(OneOrMany.Create(1).Select(i => i + 1), 2); 110Verify(OneOrMany.Create(ImmutableArray<int>.Empty).Select(i => i + 1)); 111Verify(OneOrMany.Create(ImmutableArray.Create(1)).Select(i => i + 1), 2); 112Verify(OneOrMany.Create(ImmutableArray.Create(1, 2)).Select(i => i + 1), 2, 3); 118Verify(OneOrMany.Create(1).Select((i, a) => i + a, 1), 2); 119Verify(OneOrMany.Create(ImmutableArray<int>.Empty).Select((i, a) => i + a, 1)); 120Verify(OneOrMany.Create(ImmutableArray.Create(1)).Select((i, a) => i + a, 1), 2); 121Verify(OneOrMany.Create(ImmutableArray.Create(1, 2)).Select((i, a) => i + a, 1), 2, 3); 127Assert.Equal(1, OneOrMany.Create(1).FirstOrDefault(i => i < 2)); 128Assert.Equal(0, OneOrMany.Create(1).FirstOrDefault(i => i > 2)); 129Assert.Equal(0, OneOrMany.Create(ImmutableArray<int>.Empty).FirstOrDefault(i => i > 2)); 130Assert.Equal(1, OneOrMany.Create(ImmutableArray.Create(1)).FirstOrDefault(i => i < 2)); 131Assert.Equal(0, OneOrMany.Create(ImmutableArray.Create(1)).FirstOrDefault(i => i > 2)); 132Assert.Equal(1, OneOrMany.Create(ImmutableArray.Create(1, 3)).FirstOrDefault(i => i < 2)); 133Assert.Equal(3, OneOrMany.Create(ImmutableArray.Create(1, 3)).FirstOrDefault(i => i > 2)); 139Assert.Equal(1, OneOrMany.Create(1).FirstOrDefault((i, a) => i < a, 2)); 140Assert.Equal(0, OneOrMany.Create(1).FirstOrDefault((i, a) => i > a, 2)); 141Assert.Equal(0, OneOrMany.Create(ImmutableArray<int>.Empty).FirstOrDefault((i, a) => i > a, 2)); 142Assert.Equal(1, OneOrMany.Create(ImmutableArray.Create(1)).FirstOrDefault((i, a) => i < a, 2)); 143Assert.Equal(0, OneOrMany.Create(ImmutableArray.Create(1)).FirstOrDefault((i, a) => i > a, 2)); 144Assert.Equal(1, OneOrMany.Create(ImmutableArray.Create(1, 3)).FirstOrDefault((i, a) => i < a, 2)); 145Assert.Equal(3, OneOrMany.Create(ImmutableArray.Create(1, 3)).FirstOrDefault((i, a) => i > a, 2)); 154Assert.False(OneOrMany.Create(1).All(i => i > 1)); 155Assert.True(OneOrMany.Create(1).All(i => i > 0)); 157Assert.False(OneOrMany.Create(1, 2).All(i => i > 1)); 158Assert.True(OneOrMany.Create(1, 2).All(i => i > 0)); 167Assert.False(OneOrMany.Create(1).All((i, a) => i > a, 1)); 168Assert.True(OneOrMany.Create(1).All((i, a) => i > a, 0)); 170Assert.False(OneOrMany.Create(1, 2).All((i, a) => i > a, 1)); 171Assert.True(OneOrMany.Create(1, 2).All((i, a) => i > a, 0)); 178Assert.True(OneOrMany.Create(1).Any()); 179Assert.True(OneOrMany.Create(1, 2).Any()); 188Assert.False(OneOrMany.Create(1).Any(i => i > 1)); 189Assert.True(OneOrMany.Create(1).Any(i => i > 0)); 191Assert.False(OneOrMany.Create(1, 2).Any(i => i < 0)); 192Assert.True(OneOrMany.Create(1, 2).Any(i => i > 1)); 201Assert.False(OneOrMany.Create(1).Any((i, a) => i > a, 1)); 202Assert.True(OneOrMany.Create(1).Any((i, a) => i > a, 0)); 204Assert.False(OneOrMany.Create(1, 2).Any((i, a) => i < a, 0)); 205Assert.True(OneOrMany.Create(1, 2).Any((i, a) => i > a, 1)); 211var single = OneOrMany.Create(123); 212var quad = OneOrMany.Create(ImmutableArray.Create<int>(10, 20, 30, 40)); 218Assert.Throws<ArgumentNullException>(() => OneOrMany.Create(default(ImmutableArray<int>))); 225Assert.False(OneOrMany<int>.Empty.SequenceEqual(OneOrMany.Create(1))); 226Assert.False(OneOrMany<int>.Empty.SequenceEqual(OneOrMany.Create(1, 2))); 227Assert.False(OneOrMany.Create(1).SequenceEqual(OneOrMany<int>.Empty)); 228Assert.False(OneOrMany.Create(1, 2).SequenceEqual(OneOrMany<int>.Empty)); 229Assert.True(OneOrMany.Create(1).SequenceEqual(OneOrMany.Create(1))); 230Assert.False(OneOrMany.Create(1).SequenceEqual(OneOrMany.Create(2))); 231Assert.True(OneOrMany.Create(1, 2).SequenceEqual(OneOrMany.Create(1, 2))); 232Assert.False(OneOrMany.Create(1, 2).SequenceEqual(OneOrMany.Create(1, 0))); 234Assert.False(OneOrMany.Create(1, 2).SequenceEqual(OneOrMany.Create(ImmutableArray.Create(1, 2, 3)))); 235Assert.True(OneOrMany.Create(1).SequenceEqual(OneOrMany.Create(ImmutableArray.Create(1)))); 240Assert.True(OneOrMany.Create(1).SequenceEqual(new[] { 1 })); 241Assert.False(OneOrMany.Create(1).SequenceEqual(new[] { 2 })); 242Assert.True(OneOrMany.Create(1, 2).SequenceEqual(new[] { 1, 2 })); 243Assert.False(OneOrMany.Create(1, 2).SequenceEqual(new[] { 1, 0 })); 244Assert.False(OneOrMany.Create(1, 2).SequenceEqual(new[] { 1, 2, 3 })); 249Assert.True(new[] { 1 }.SequenceEqual(OneOrMany.Create(1))); 250Assert.False(new[] { 1 }.SequenceEqual(OneOrMany.Create(2))); 251Assert.True(new[] { 1, 2 }.SequenceEqual(OneOrMany.Create(1, 2))); 252Assert.False(new[] { 1, 2 }.SequenceEqual(OneOrMany.Create(1, 0))); 253Assert.False(new[] { 1, 2 }.SequenceEqual(OneOrMany.Create(ImmutableArray.Create(1, 2, 3)))); 258Assert.True(ImmutableArray.Create(1).SequenceEqual(OneOrMany.Create(1))); 259Assert.False(ImmutableArray.Create(1).SequenceEqual(OneOrMany.Create(2))); 260Assert.True(ImmutableArray.Create(1, 2).SequenceEqual(OneOrMany.Create(1, 2))); 261Assert.False(ImmutableArray.Create(1, 2).SequenceEqual(OneOrMany.Create(1, 0))); 262Assert.False(ImmutableArray.Create(1, 2).SequenceEqual(OneOrMany.Create(ImmutableArray.Create(1, 2, 3)))); 269Assert.True(OneOrMany.Create(1).SequenceEqual(new[] { 11 }, comparer)); 270Assert.True(OneOrMany.Create(1, 2).SequenceEqual(new[] { 11, 32 }, comparer)); 271Assert.False(OneOrMany.Create(1, 2).SequenceEqual(new[] { 0, 1 }, comparer));