https://issues.dlang.org/show_bug.cgi?id=19545
--- Comment #5 from John Colvin <john.loughran.col...@gmail.com> --- (In reply to John Colvin from comment #1) > void main() > { > pragma(msg, __traits(compiles, > inputRangeObject(RegexMatch!string.init))); > inputRangeObject(RegexMatch!string.init); > } > > struct RegexMatch(T) > { > } > > class InputRangeObject(R) > { > this(R) > { > } > > R front() > { > } > } > > InputRangeObject!R inputRangeObject(R)(R range) > { > return new InputRangeObject!R(range); > } > > I've tried bisecting to find when in the history this started to go wrong, > but it's hard (old dmds don't necessarily build on linux any more due to > missing gcc headers). > > Here is the output from run.dlang.io, which suggests that there was a > problem existing before 2.060, because while there it doesn't mistakenly > continue with compilation it still reports `true` when it should say `false`: > > Up to 2.060 : Failure with output: > ----- > true > onlineapp.d(17): Error: function > onlineapp.InputRangeObject!(RegexMatch!(string)).InputRangeObject.front has > no return statement, but is expected to return a value of type > RegexMatch!(string) > ----- > > 2.061 : Failure with output: > ----- > true > onlineapp.o: In function > `_D9onlineapp68__T16inputRangeObjectTS9onlineapp20__T10RegexMatchTAyaZ10Regex > MatchZ16inputRangeObjectFS9onlineapp20__T10RegexMatchTAyaZ10RegexMatchZC9onli > neapp68__T16InputRangeObjectTS9onlineapp20__T10RegexMatchTAyaZ10RegexMatchZ16 > InputRangeObject': > /sandbox/onlineapp.d:24: undefined reference to > `_D9onlineapp68__T16InputRangeObjectTS9onlineapp20__T10RegexMatchTAyaZ10Regex > MatchZ16InputRangeObject7__ClassZ' > /sandbox/onlineapp.d:24: undefined reference to > `_D9onlineapp68__T16InputRangeObjectTS9onlineapp20__T10RegexMatchTAyaZ10Regex > MatchZ16InputRangeObject6__ctorMFS9onlineapp20__T10RegexMatchTAyaZ10RegexMatc > hZC9onlineapp68__T16InputRangeObjectTS9onlineapp20__T10RegexMatchTAyaZ10Regex > MatchZ16InputRangeObject' > collect2: error: ld returned 1 exit status > --- errorlevel 1 > ----- This is the test case to pay attention to. --