In order to achieve good completion support by editors (like
IntelliSense) with duck-typed variables, concept-checking code should
contain more type information than that of the code now used in Phobos.

Example:

  static interface InputRange(T) {
    const bool empty();
    T front();
    void popFront();
  }

or in the current D syntax,

  template isInputRange(T, R) {
    enum isInputRange =
      is(const(R).init.empty() == bool) &&
      is(R.init.front() == T) &&
      is(R.init.popFront() == void);
  }

How do you think about this?

Reply via email to