Am 17.02.2017 um 03:30 schrieb John More:

On Fri, 3 Feb 2017 16:11:45 +0100, Sönke Ludwig wrote:

Am 03.02.2017 um 15:11 schrieb Naranjah:

On Wed, 25 Jan 2017 13:49:44 +0100, Sönke Ludwig wrote:

Am 22.01.2017 um 05:32 schrieb John More:

Installed latest version of dmd and dub. What happened??

source/app.d(1844,15): Deprecation: vibe.inet.path.canFind is not visible from module app
source/app.d(2044,11): Deprecation: vibe.core.args.array is not visible from module app
source/app.d(2044,17): Deprecation: vibe.core.args.map is not visible from module app
source/app.d(2094,11): Deprecation: vibe.core.args.array is not visible from module app
source/app.d(2094,17): Deprecation: vibe.core.args.map is not visible from module app
source/app.d(2165,12): Deprecation: vibe.core.args.array is not visible from module app
source/app.d(2165,18): Deprecation: vibe.core.args.map is not visible from module app
source/devices.d(49,14): Deprecation: vibe.core.args.array is not visible from module devices
source/devices.d(49,20): Deprecation: vibe.core.args.map is not visible from module devices
source/validation.d(154,43): Deprecation: vibe.db.redis.redis.Nullable is not visible from module validation

DMD recently got some stricter visibility checking and it's very likely
that those symbols were previously just available by accident. Importing
std.array : array and std.algorithm.iteration : map should fix the
warnings.

Hey I've imported std.array : array and std.algorithm.iteration : map and unfortunately nothing has happened. Im still getting exactly the same error. Any idea how to fix it? Thanks

Is the source code to the application publicly available somewhere?
Without it it's hard to say something more specific. But generally, the
deprecation messages should be semantically equivalent to "Error:
undefined identifier 'canFind'" etc.

As I have over 100 lines of deprecation notices on a build since updating and my application depends on lot on it's environment I am going to try providing some simple code examples that generate the same notices; one at a time, as I can get to them.

Your assistance is very much appreciated.

Thanks

First one generates

source/app.d(13,13): Deprecation: vibe.inet.path.canFind is not visible from module app

and executes as expected.
I tried it with and without the

  import std.algorithm.iteration : map;

and

  import std.array : array;

directive with the same results.

import vibe.d;
import std.stdio;
import std.algorithm.iteration : map;
import std.array : array;

shared static this()
{
	auto settings = new HTTPServerSettings;
	settings.port = 8080;
	settings.bindAddresses = ["::1", "127.0.0.1"];
	listenHTTP(settings, &hello);

        string testStr = "Here we are";
        if (canFind(testStr,"Here")) writeln("found here");

	logInfo("Please open http://127.0.0.1:8080/ in your browser.");
}

void hello(HTTPServerRequest req, HTTPServerResponse res)
{
	res.writeBody("Hello, World!");
}

Try adding import std.algorithm.searching : canFind; - that should be
the right one. Alternatively, instead of the individual imports of map
and canFind, just import std.algorithm; should cover both at the
same time, at the cost of a slightly longer compilation time.