BADF00D / DisposableFixer

This is a Visual Studio Extension and NuGet package that should identify and fix problems as memleaks while using IDisposables.
Other
35 stars 7 forks source link

Spare IDisposable is added to class, when base class/interface already implements IDisposable #78

Closed BADF00D closed 6 years ago

BADF00D commented 6 years ago

Prerequisites

Description

When using a CodeFix that creates/uses a field/property to dispose in Dispose()-method, an IDisposable is added to class, regardless there is already an IDisposable at the base class/interface,

Source Code

This:

using System;
using System.IO;

namespace MyNs {
    public interface IDoSomething : IDisposable {
    }
    internal class Dummy : IDoSomething {
        private MemoryStream Stream = new MemoryStream();

        public void Dispose() { }
    }
}

Becomes

using System;
using System.IO;

namespace MyNs {
    public interface IDoSomething : IDisposable {
    }
    internal class Dummy : IDisposable, IDoSomething {
        private MemoryStream Stream = new MemoryStream();

        public void Dispose() {
            Stream?.Dispose();
        }
    }
}

But is should be:

using System;
using System.IO;

namespace MyNs {
    public interface IDoSomething : IDisposable {
    }
    internal class Dummy : IDoSomething {
        private MemoryStream Stream = new MemoryStream();

        public void Dispose() {
            Stream?.Dispose();
        }
    }
}

Screenshot

2018-08-02_10-08-21

BADF00D commented 6 years ago

Will be part of release 1.0.0