File tree Expand file tree Collapse file tree 3 files changed +18
-14
lines changed
Expand file tree Collapse file tree 3 files changed +18
-14
lines changed Original file line number Diff line number Diff line change @@ -23,14 +23,14 @@ IEnumerator IEnumerable.GetEnumerator()
2323 return GetEnumerator ( ) ;
2424 }
2525
26- public IDisposable Add ( params IJsonRpcHandler [ ] handlers )
26+ public IDisposable Add ( IEnumerable < IJsonRpcHandler > handlers )
2727 {
28- return Add ( handlers . AsEnumerable ( ) ) ;
28+ return Add ( handlers . ToArray ( ) ) ;
2929 }
3030
31- public IDisposable Add ( IEnumerable < IJsonRpcHandler > handlers )
31+ public IDisposable Add ( params IJsonRpcHandler [ ] handlers )
3232 {
33- var descriptors = new List < HandlerDescriptor > ( ) ;
33+ var descriptors = new HashSet < HandlerDescriptor > ( ) ;
3434 foreach ( var handler in handlers )
3535 {
3636 foreach ( var implementedInterface in handler . GetType ( ) . GetTypeInfo ( )
@@ -65,11 +65,15 @@ public IDisposable Add(IEnumerable<IJsonRpcHandler> handlers)
6565 ( ) => _handlers . RemoveWhere ( instance => instance . Handler == handler ) ) ;
6666
6767 descriptors . Add ( h ) ;
68- _handlers . Add ( h ) ;
6968 }
7069 }
7170
72- return new ImutableDisposable ( descriptors ) ;
71+ foreach ( var handler in descriptors )
72+ {
73+ _handlers . Add ( handler ) ;
74+ }
75+
76+ return new ImmutableDisposable ( descriptors ) ;
7377 }
7478
7579 private Type UnwrapGenericType ( Type genericType , Type type )
Original file line number Diff line number Diff line change 33
44namespace OmniSharp . Extensions . LanguageServer
55{
6- class ImutableDisposable : IDisposable
6+ class ImmutableDisposable : IDisposable
77 {
88 private readonly IEnumerable < IDisposable > _instances ;
99
10- public ImutableDisposable ( IEnumerable < IDisposable > instances )
10+ public ImmutableDisposable ( IEnumerable < IDisposable > instances )
1111 {
1212 _instances = instances ;
1313 }
1414
15- public ImutableDisposable ( params IDisposable [ ] instances )
15+ public ImmutableDisposable ( params IDisposable [ ] instances )
1616 {
1717 _instances = instances ;
1818 }
@@ -25,4 +25,4 @@ public void Dispose()
2525 }
2626 }
2727 }
28- }
28+ }
Original file line number Diff line number Diff line change @@ -60,16 +60,16 @@ public IDisposable AddHandler(IJsonRpcHandler handler)
6060 return AddHandler ( handler ) ;
6161 }
6262
63- public IDisposable AddHandlers ( params IJsonRpcHandler [ ] handlers )
63+ public IDisposable AddHandlers ( IEnumerable < IJsonRpcHandler > handlers )
6464 {
65- return AddHandlers ( handlers . AsEnumerable ( ) ) ;
65+ return AddHandlers ( handlers . ToArray ( ) ) ;
6666 }
6767
68- public IDisposable AddHandlers ( IEnumerable < IJsonRpcHandler > handlers )
68+ public IDisposable AddHandlers ( params IJsonRpcHandler [ ] handlers )
6969 {
7070 var handlerDisposable = _collection . Add ( handlers ) ;
7171
72- return new ImutableDisposable (
72+ return new ImmutableDisposable (
7373 handlerDisposable ,
7474 new Disposable ( ( ) =>
7575 {
You can’t perform that action at this time.
0 commit comments