digitalmars.D.learn - porperty problem..
- BLS (37/37) Jun 28 2010 Hi I have a forward reference pb in conjunction with @property.
- Simen kjaeraas (11/25) Jun 28 2010 No line number? If so, file it in bugzilla. You might also want to file
- Steven Schveighoffer (5/42) Jun 28 2010 Shouldn't this be
- Ellery Newcomer (2/8) Jun 28 2010 auto functions?
- Steven Schveighoffer (7/19) Jun 28 2010 I wasn't aware that @property implies auto. I guess that makes sense, b...
- Ellery Newcomer (4/24) Jun 28 2010 There are a bunch of modifiers that do.
- BLS (19/22) Jun 28 2010 Hm, this snippet does not compile :
- Simen kjaeraas (5/16) Jun 28 2010 Maybe it's because you haven't added string to the setter? Just grasping
- BLS (60/64) Jun 28 2010 Hi Simen, yes, thats the prob. I just have not found the @property
- BLS (6/8) Jun 28 2010 Ouch, you are right.. Interesting enough that @property nextServer() {
- BLS (27/30) Jun 28 2010 ok moving the inner Server class (see prev. msg) in front of
- Rory McGuire (2/39) Jun 28 2010 Only place I've seen @property docs is in TDPL
- Steven Schveighoffer (4/7) Jun 28 2010 http://www.digitalmars.com/d/2.0/function.html#property-functions
- BLS (2/4) Jun 28 2010 Makes sense :) thanks
Hi I have a forward reference pb in conjunction with property.
Err msg is :
forward refrence to inferred return type of function call s1.servername.
any ideas ? beside, where are the property docs ?
thanks, bjoern
final class LoadBalancer {
private static LoadBalancer lb;
private Server[] servers;
static this() {
synchronized lb = new LoadBalancer;
}
private this() {
Server s1 = new Server();
s1.servername = "Server 1"; // ERROR
servers ~= s1;
}
public static LoadBalancer getLoadBalancer() {
return lb;
}
property nextServer() {
return servers[0];
}
class Server {
private string _name, _id;
property servername(string name) {
_name = name;
}
property servername() {
return _name;
}
}
}
Jun 28 2010
BLS <windevguy hotmail.de> wrote:Hi I have a forward reference pb in conjunction with property. Err msg is : forward refrence to inferred return type of function call s1.servername. any ideas ?No line number? If so, file it in bugzilla. You might also want to file a bug for the forward reference problems.beside, where are the property docs ?No idea. This:property nextServer() { return servers[0]; }Needs to be property Server nextServer(). I don't know for sure, but I believe property does not cause type inference. => property void servername(string name)property servername(string name) { _name = name; }=> property string servername()property servername() { return _name; }-- Simen
Jun 28 2010
On Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:Hi I have a forward reference pb in conjunction with property. Err msg is : forward refrence to inferred return type of function call s1.servername. any ideas ? beside, where are the property docs ? thanks, bjoern final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; // ERROR servers ~= s1; } public static LoadBalancer getLoadBalancer() { return lb; } property nextServer() {Shouldn't this be property Server nextServer() { ???return servers[0]; } class Server { private string _name, _id; property servername(string name) { _name = name; } property servername() { return _name; } } }-Steve
Jun 28 2010
On 06/28/2010 03:47 PM, Steven Schveighoffer wrote:On Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:auto functions?property nextServer() {Shouldn't this be property Server nextServer() { ???
Jun 28 2010
On Mon, 28 Jun 2010 16:55:01 -0400, Ellery Newcomer <ellery-newcomer utulsa.edu> wrote:On 06/28/2010 03:47 PM, Steven Schveighoffer wrote:I wasn't aware that property implies auto. I guess that makes sense, but I didn't consider it anything but a hint to the compiler about how it could be called, not that did anything with the type. But I guess it's similar to static... -SteveOn Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:auto functions?property nextServer() {Shouldn't this be property Server nextServer() { ???
Jun 28 2010
On 06/28/2010 03:58 PM, Steven Schveighoffer wrote:On Mon, 28 Jun 2010 16:55:01 -0400, Ellery Newcomer <ellery-newcomer utulsa.edu> wrote:There are a bunch of modifiers that do. protection modifiers and maybe align and a few others don't, but pretty much everything else doesOn 06/28/2010 03:47 PM, Steven Schveighoffer wrote:I wasn't aware that property implies auto. I guess that makes sense, but I didn't consider it anything but a hint to the compiler about how it could be called, not that did anything with the type. But I guess it's similar to static... -SteveOn Mon, 28 Jun 2010 16:37:06 -0400, BLS <windevguy hotmail.de> wrote:auto functions?property nextServer() {Shouldn't this be property Server nextServer() { ???
Jun 28 2010
On 28/06/2010 22:58, Steven Schveighoffer wrote:I wasn't aware that property implies auto. I guess that makes sense, but I didn't consider it anything but a hint to the compiler about how it could be called, not that did anything with the type.Hm, this snippet does not compile : class Server { private string _name, _id; property servername(string name) { _name = name; } property string servername() { return _name; } } remove string from property and it works. On the other hand .. property Server nextServer() { return servers[0]; } compiles fine ! Guess we need the official documents... Bjoern
Jun 28 2010
BLS <windevguy hotmail.de> wrote:
Hm, this snippet does not compile :
class Server {
private string _name, _id;
property servername(string name) {
_name = name;
}
property string servername() {
return _name;
}
}
remove string from property and it works.
Maybe it's because you haven't added string to the setter? Just grasping
at straws here.
--
Simen
Jun 28 2010
On 29/06/2010 00:07, Simen kjaeraas wrote:Maybe it's because you haven't added string to the setter? Just grasping at straws here. -- SimenHi Simen, yes, thats the prob. I just have not found the property docs.. thanks for all the help.. This snippet works now as expected.. D properties are just fine. Bjoern import std.stdio; import std.random; void main(string[] args) { LoadBalancer b1 = LoadBalancer.getLoadBalancer(); LoadBalancer b2 = LoadBalancer.getLoadBalancer(); LoadBalancer b3 = LoadBalancer.getLoadBalancer(); // Confirm these are the same instance if (b1 == b2 && b2 == b3 ) { writeln("Same instance\n"); } // Next, load 15 requests for a server for (int i = 0; i < 15; i++) { string serverName = b1.nextServer.servername; writeln("Dispatch request to: " ~ serverName); } } // D2 thread safe ?????? singleton final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; s1.id = ""; Server s2 = new Server(); s2.servername = "Server 2"; servers ~= s1; servers ~= s2; } public static LoadBalancer getLoadBalancer() { return lb; } property { Server nextServer() { return servers[ uniform(0, servers.length) ]; } } // inner class class Server { private string _name, _id; property { string servername(string sn) { return _name = sn; } string servername() { return _name; } string id(string id) { return _id = id; } string id() { return _id; } } } }
Jun 28 2010
On 28/06/2010 22:47, Steven Schveighoffer wrote:
houldn't this be
property Server nextServer() {
Ouch, you are right.. Interesting enough that property nextServer() {
return ...} compiles without giving any error message..
Anyway it seems to be a forward reference bug. moving the inner Server()
class in front of LoadBalancer eliminates the error msg.
bjoern
Jun 28 2010
On 28/06/2010 22:37, BLS wrote:forward refrence to inferred return type of function call s1.servername. any ideas ? beside, where are the property docs ? thanks, bjoernok moving the inner Server class (see prev. msg) in front of LoadBalancer works.. seems to be a forward reference bug. class Server { private string _name, _id; property servername(string name) { _name = name; } property servername() { return _name; } } final class LoadBalancer { private static LoadBalancer lb; private Server[] servers; static this() { synchronized lb = new LoadBalancer; } private this() { Server s1 = new Server(); s1.servername = "Server 1"; // NO PROBLEM } ... }
Jun 28 2010
On Mon, 28 Jun 2010 22:37:06 +0200, BLS <windevguy hotmail.de> wrote:
Hi I have a forward reference pb in conjunction with property.
Err msg is :
forward refrence to inferred return type of function call s1.servername.
any ideas ? beside, where are the property docs ?
thanks, bjoern
final class LoadBalancer {
private static LoadBalancer lb;
private Server[] servers;
static this() {
synchronized lb = new LoadBalancer;
}
private this() {
Server s1 = new Server();
s1.servername = "Server 1"; // ERROR
servers ~= s1;
}
public static LoadBalancer getLoadBalancer() {
return lb;
}
property nextServer() {
return servers[0];
}
class Server {
private string _name, _id;
property servername(string name) {
_name = name;
}
property servername() {
return _name;
}
}
}
Only place I've seen property docs is in TDPL
Jun 28 2010
On Mon, 28 Jun 2010 16:55:44 -0400, Rory McGuire <rmcguire neonova.co.za> wrote:On Mon, 28 Jun 2010 22:37:06 +0200, BLS <windevguy hotmail.de> wrote:http://www.digitalmars.com/d/2.0/function.html#property-functions -Stevebeside, where are the property docs ?Only place I've seen property docs is in TDPL
Jun 28 2010
On 28/06/2010 23:00, Steven Schveighoffer wrote:http://www.digitalmars.com/d/2.0/function.html#property-functions -SteveMakes sense :) thanks
Jun 28 2010









"Simen kjaeraas" <simen.kjaras gmail.com> 