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 validationDMD recently got some stricter visibility checking and it's very likely
that those symbols were previously just available by accident. Importingstd.array : array
andstd.algorithm.iteration : map
should fix the
warnings.Hey I've imported
std.array : array
andstd.algorithm.iteration : map
and unfortunately nothing has happened. Im still getting exactly the same error. Any idea how to fix it? ThanksIs 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 theimport 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.