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

Codefix should add IDisposable Interface as last Interface #95

Closed BADF00D closed 5 years ago

BADF00D commented 5 years ago

Prerequisites

Description

When using CodeFix "Dispose in Dispose Method" on a Field/Property that is in a class without IDisposable implementation but another base class, IDisposable Interface is added as first BaseType in BaseList. This yields an Compilation error.

Source Code

This:

using System;
using System.IO;

namespace SelectManyTest {
    internal class Issue95 : Object {
        public IDisposable MemoryStream { get; }

        public Issue95()
        {
            MemoryStream = new MemoryStream();
        }
    }
}

Becomes:

using System;
using System.IO;

namespace SelectManyTest {
    internal class Issue95 : IDisposable, Object {
        public IDisposable MemoryStream { get; }

        public Issue95()
        {
            MemoryStream = new MemoryStream();
        }

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

But should become:

using System;
using System.IO;

namespace SelectManyTest {
    internal class Issue95 : Object, IDisposable {
        public IDisposable MemoryStream { get; }

        public Issue95()
        {
            MemoryStream = new MemoryStream();
        }

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

Screenshot

issue95

BADF00D commented 5 years ago

Will probably be part of release 1.1.3