Results 86 comments of Joe Groff

@stepancheg Error resolution in that fashion isn't practical. For more complex predicates, how do you decide which nodes of the call graph to show? You can't report every false or...

@agemogolk @stepancheg It is true that a subset of predicate expressions, such as comparing types or using `CallDefined?`, could be mapped to constraints and evaluated by constraint solving. Perhaps instead...

@stepancheg @agemogolk In D, `typeof(expr)` is the inferred type of `expr`. `is` expressions evaluate to false if there is a substitution or inference failure, so `is(typeof())` can be used to...

@stepancheg > - Prohibit cyclic module imports by the compiler This is appealing, but cyclic imports are occasionally useful, because they allow you to categorize public interfaces into modules in...

@agemogolk It would be invalid for multiple overloads to match the same call site. In your example, `foo(x)` would be invalid because it matches both overloads, whereas `foo(x, y)` would...

@stepancheg that is true, though it is convenient that an additional module is currently unnecessary. There are however other benefits to disallowing cyclic imports; it would for instance be nice...

@kssreeram originally wrote the compile-time evaluator using the JIT, but the added overhead of compilation actually made it slower than the current interpreter at the time. IIRC his implementation was...

Technically no, compile-time functions can in theory access global state, though in practice this doesn't really work. You could think of compile-time functions as being pure in their inputs and...

My worry is that the alignment requirement for `bitcast` is too restrictive, and might hinder casts you'd expect to work on some platforms, for instance if an `Int64` is 4-byte-aligned...

I think that would clash with the `return ref` syntax. I don't see how `->` guarantees stateless—your example still captures `y` and `z`. I'm not sure how generally useful mixed...