changed semantics of .file and .path fields on source locations. If no path is provided it returns the root path instead of the empty string and the .file field also works now in case no path exists, it returns the empty string in this case. Added tests for this behavior.