Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ TheIDE » U++ TheIDE: CodeEditor, Assist++, Topic++ » B605-dev1: Assist++: Incorrect evaluation
B605-dev1: Assist++: Incorrect evaluation [message #3494] Sun, 28 May 2006 15:50 Go to next message
Werner is currently offline  Werner
Messages: 234
Registered: May 2006
Location: Cologne / Germany
Experienced Member
I'm using B605-dev1 under Windows XP.

There are some problems with Assist++. Please, look at the following code:

// code begins here

class demo_class;
void global_function();
int global_friend_function(demo_class x);

class demo_class
{
private:
int static static_private_data;
int non_static_private_data;

void static static_private_class_function() {} // class function
void non_static_private_member_function() {} // instance method

protected:
int static static_protected_data;
int non_static_protected_data;

void static static_protected_class_function() {} // class function
void non_static_protected_member_function() {} // instance method

public:
int static static_public_data;
int non_static_public_data;

demo_class() {} // constructor
~demo_class() {} // destructor
void static static_public_class_function() {} // class function
void non_static_public_member_function() {} // instance method
friend int global_friend_function(demo_class x);
};

void global_function() {}
int global_friend_function(demo_class x) {return x.non_static_private_data;}

// code ends here

Calling “Assist / Navigate in the file” yields the following wrong, missing, or misleading information:

First of all Assist++ lists all symbols twice, some of them even four times (compare below). Maybe this is partially the result of “- Assist++: Go to symbol is now case insensitive, listing full matches first and case insensitive matches next“. But in this case there should be an option to switch this feature off. In most cases it just inflates the listing.

Line 03:
Assist++ does not recognize the global friend function as friend although the respective class has been declared beforehand. Yes, I know – no definition so far! But please compare my comment about line 31.

Line 08:
Assist++ tells a wrong name: “static_public_class_function” instead of “static_private_data”. This wrong line is repeated.

Line 11:
Assist++ shows the data symbol instead of the code symbol and tells a wrong name: “static_public_class_function” instead of “static_private_class_function”. This wrong line is repeated.

Line 14:
Assist++ tells a wrong name: “static_public_class_function” instead of “static_protected_data”. This wrong line is repeated.

Line 17:
Assist++ shows the data symbol instead of the code symbol and tells a wrong name: “static_public_class_function” instead of “static_protected_class_function”. This wrong line is repeated.

Line 20:
Assist++ tells a wrong name: “static_public_class_function” instead of “static_public_data”. This wrong line is repeated.

Line 25:
Assist++ shows the data symbol instead of the code symbol. This wrong line is repeated.

Line 27:
Assist++ does not list the declaration of the global friend function at all.

Line 31:
Assist++ does not recognize the global friend function as friend, although it has already been declared as such.

Last but not least “TheIde help / Assist++ / Graphical symbols used by Assist++” should be completed with the “{}” symbol to tell apart declarations from definitions.

Werner

[Updated on: Sun, 28 May 2006 20:13]

Report message to a moderator

Re: B605-dev1: Assist++: Incorrect evaluation [message #3499 is a reply to message #3494] Mon, 29 May 2006 00:44 Go to previous messageGo to next message
mirek is currently offline  mirek
Messages: 13975
Registered: November 2005
Ultimate Member
Werner wrote on Sun, 28 May 2006 09:50

I'm using B605-dev1 under Windows XP.

There are some problems with Assist++. Please, look at the following code:

// code begins here

class demo_class;
void global_function();
int global_friend_function(demo_class x);

class demo_class
{
private:
int static static_private_data;
int non_static_private_data;

void static static_private_class_function() {} // class function
void non_static_private_member_function() {} // instance method

protected:
int static static_protected_data;
int non_static_protected_data;

void static static_protected_class_function() {} // class function
void non_static_protected_member_function() {} // instance method

public:
int static static_public_data;
int non_static_public_data;

demo_class() {} // constructor
~demo_class() {} // destructor
void static static_public_class_function() {} // class function
void non_static_public_member_function() {} // instance method
friend int global_friend_function(demo_class x);
};

void global_function() {}
int global_friend_function(demo_class x) {return x.non_static_private_data;}

// code ends here

Calling “Assist / Navigate in the file” yields the following wrong, missing, or misleading information:

First of all Assist++ lists all symbols twice, some of them even four times (compare below). Maybe this is partially the result of “- Assist++: Go to symbol is now case insensitive, listing full matches first and case insensitive matches next“. But in this case there should be an option to switch this feature off. In most cases it just inflates the listing.

Line 03:
Assist++ does not recognize the global friend function as friend although the respective class has been declared beforehand. Yes, I know – no definition so far! But please compare my comment about line 31.

Line 08:
Assist++ tells a wrong name: “static_public_class_function” instead of “static_private_data”. This wrong line is repeated.

Line 11:
Assist++ shows the data symbol instead of the code symbol and tells a wrong name: “static_public_class_function” instead of “static_private_class_function”. This wrong line is repeated.

Line 14:
Assist++ tells a wrong name: “static_public_class_function” instead of “static_protected_data”. This wrong line is repeated.

Line 17:
Assist++ shows the data symbol instead of the code symbol and tells a wrong name: “static_public_class_function” instead of “static_protected_class_function”. This wrong line is repeated.

Line 20:
Assist++ tells a wrong name: “static_public_class_function” instead of “static_public_data”. This wrong line is repeated.

Line 25:
Assist++ shows the data symbol instead of the code symbol. This wrong line is repeated.

Line 27:
Assist++ does not list the declaration of the global friend function at all.

Line 31:
Assist++ does not recognize the global friend function as friend, although it has already been declared as such.

Last but not least “TheIde help / Assist++ / Graphical symbols used by Assist++” should be completed with the “{}” symbol to tell apart declarations from definitions.

Werner



Thanks, this will help.

Assist++ is object of continual improvement. Is it semi-heurestic parser, because full parsing would be too slow, which makes it intrinsically tricky....

Mirek
Re: B605-dev1: Assist++: Incorrect evaluation [message #8167 is a reply to message #3494] Tue, 13 February 2007 21:21 Go to previous message
captainc is currently offline  captainc
Messages: 278
Registered: December 2006
Location: New Jersey, USA
Experienced Member
I am having a similar issue. After I create a new class and use public and private keywords, the listing is never correct in assist++ auto-complete list.

Example of a similar header file as I define it:

Example.hpp

#ifndef EXAMPLE_H
#define EXAMPLE_H

#include <somelib>

using namespace of_some_lib;

class Example{
private:
std::vector<std::string> some_vector;
void myPrivFunc();

public:
Example();
Example(std::string init);
void myFunc1(std::string str);
};

#endif


Note: I get the incorrect assist++ listing in any other file such as Example.cpp .

Also, this is using U++ 2007.1beta

[Updated on: Tue, 13 February 2007 21:22]

Report message to a moderator

Previous Topic: Smart tips [FEATURE REQUEST]
Next Topic: CodeEditor: Character en-coding problem [BUG]?
Goto Forum:
  


Current Time: Fri Mar 29 06:37:40 CET 2024

Total time taken to generate the page: 0.01392 seconds