Skip to content

Files

Latest commit

 

History

History
57 lines (36 loc) · 855 Bytes

dynamic_inline.md

File metadata and controls

57 lines (36 loc) · 855 Bytes

Pattern: Use of dynamic and @inline(__always)

Issue: -

Description

When a class method is marked as both dynamic and @inline(__always), its dispatch behavior is not well defined. Therefore this specific combination is discouraged.

Examples of correct code:

class C {
dynamic func f() {}}


class C {
@inline(__always) func f() {}}


class C {
@inline(never) dynamic func f() {}}

Examples of incorrect code:

class C {
@inline(__always) dynamic func f() {}
}


class C {
@inline(__always) public dynamicfunc f() {}
}


class C {
@inline(__always) dynamic internalfunc f() {}
}


class C {
@inline(__always)
dynamicfunc f() {}
}


class C {
@inline(__always)
dynamicfunc f() {}
}

Further Reading