November 14, 2008
//start file A.d
module A;
public class Base{}
public void baseFunction{}

//end file A.d

//start file B.d
module B;
private import A;
public void FunctionB(Base x); //at least this is illegal. Because ...
public Base FunctionElse(); /*This is also be illegal, the same reason*/

public class B:Base{}; /*I think this is illegal should be better*/
/* This means we can't access a private module through any way.*/
//end file B.d

//start file C.d  this fele is the reason...
module C;
private import B;
private void FunctionC()
	Base x; //illegal
	//so you can't access FunctionB(x); /*Because x can't be define*/
//end file C.d

November 14, 2008
I'm sorry but a private import is not a private module. A private import is seen as private by external modules and as such cannot be accessed. Also the import would be meaningless if it changed the access privileges of any module since by your logic public import would change private functions to public. If you are trying to make a module that cannot have anything imported from it make everything inside of the module private.
Top | Discussion index | About this forum | D home