 <p>You cannot call a trait method without specifying on which implementation you wish to call it. It doesn't matter that the method has a default implementation.</p> <p>An actual UFCS call looks like this:</p> <pre><code>trait FooPrinter { fn print() { println!("hello"); } } impl FooPrinter for () {} fn main () { &lt;() as FooPrinter&gt;::print(); } </code></pre> <p><a href="http://is.gd/fAyAWm" rel="nofollow">playground</a></p> <p>If you don't need polymorphism on this method, move it to a <code>struct</code> or <code>enum</code>, or make it a global function.</p>