Showing 1 of 2 files from the diff.
Other files ignored by Codecov
.travis.yml has changed.

@@ -6,7 +6,7 @@
Loading
6 6
// druntime, to allow for destruction attribute inference
7 7
8 8
void destruct(T)(T obj) if (is(T == class)) {
9 -
    (cast(_finalizeType!T) &rt_finalize)(cast(void*) obj);
9 +
    (cast(_finalizeType!T) &rt_finalize)(() @trusted { return cast(void*) obj; }());
10 10
}
11 11
12 12
void destruct(T)(T obj) if (is(T == interface)) {
@@ -46,7 +46,7 @@
Loading
46 46
    import std.conv: text;
47 47
48 48
    struct A { ~this() @nogc {} }
49 -
    struct B { ~this() {} }
49 +
    struct B { ~this() { new int; } }
50 50
    class CA { A a; ~this() @nogc {} }
51 51
    class CB { B b; ~this() @nogc {} }
52 52
@@ -56,7 +56,7 @@
Loading
56 56
57 57
private:
58 58
59 -
extern(C) void rt_finalize(void* p, bool det = true);
59 +
extern(C) void rt_finalize(void* p, bool det = true) @trusted @nogc pure;
60 60
61 61
// A slightly better hack than the one presented by
62 62
// https://www.auburnsounds.com/blog/2016-11-10_Running-D-without-its-runtime.html
@@ -67,12 +67,13 @@
Loading
67 67
// have weaker set of destruction attributes.
68 68
extern(C)
69 69
template _finalizeType(T) {
70 -
    static if (is(T == Object)) {
70 +
    import std.traits: Unqual;
71 +
    static if (is(Unqual!T == Object)) {
71 72
        alias _finalizeType = typeof(&rt_finalize);
72 73
    } else {
73 74
        import std.traits : BaseClassesTuple;
74 75
        import std.meta : AliasSeq;
75 -
        alias _finalizeType = typeof((void* p, bool det = true) {
76 +
        alias _finalizeType = typeof(function void(void* p, bool det = true) {
76 77
            // generate a body that calls all the destructors in the chain,
77 78
            // compiler should infer the intersection of attributes
78 79
            foreach (B; AliasSeq!(T, BaseClassesTuple!T)) {
Files Coverage
source/automem 97.74%
tests/ut 99.44%
Project Totals (11 files) 98.88%
297.2
TRAVIS_OS_NAME=linux
297.1
TRAVIS_OS_NAME=linux

No yaml found.

Create your codecov.yml to customize your Codecov experience

Sunburst
The inner-most circle is the entire project, moving away from the center are folders then, finally, a single file. The size and color of each slice is representing the number of statements and the coverage, respectively.
Icicle
The top section represents the entire project. Proceeding with folders and finally individual files. The size and color of each slice is representing the number of statements and the coverage, respectively.
Grid
Each block represents a single file in the project. The size and color of each block is represented by the number of statements and the coverage, respectively.
Loading