Posted Fri, 17 Feb 2017 02:30:53 GMT in reply to
Sönke Ludwig
Reply
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!");
}