Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 Create Implementation bug
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

korDen
New Member

Russia
3 Posts

Posted - Oct 24 2007 :  12:23:11 PM  Show Profile  Reply with Quote
Visual Assist has a bug in implementation creation if the implementee doesn't have termination semicolon AND there is no other methods after this one.

Example:

namespace SomeNamespace
{
	class SomeClass : public SomeParentClass
	{
	public:
		SomeClass();
		virtual ~SomeClass();

		void method1();
		void method2(bool someParam)               <--------
		
		void method3(int someOtherParam);
	};
}

Implementation can not be created for method2 (guess, this is because of parsing error, right?)

But if we remove method3, then it becomes possible to create an implementation, but it looks like this:

class SomeClass :  SomeParentClass
{
	:
	SomeClass();
	~SomeClass();

	void method1();
	void method2(bool someParam) SomeNamespace::SomeClass::method2() ~SomeClass()
	{

	}

This bug appears in both general release and latest beta versions.

feline
Whole Tomato Software

United Kingdom
18948 Posts

Posted - Oct 24 2007 :  2:03:38 PM  Show Profile  Reply with Quote
Since the code is invalid, and will not compile, VA is doing its best, but it still gets confused. This is one such case.

When you see these sort of problems you need to keep an eye out for missing semi-colons.

zen is the art of being at one with the two'ness
Go to Top of Page

korDen
New Member

Russia
3 Posts

Posted - Oct 25 2007 :  2:36:10 PM  Show Profile  Reply with Quote
Yeah, of course. It's not that annoying. Just wondering if fixing it would not be too hard.
One more little problem occures while trying to implement pure virtual function. Guess, they are of the same category.


class SomeClass {
	virtual void pure() const = 0;
};

becomes

void SomeClass::pure() const /*= 0
								 {

								 }
								 }
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18948 Posts

Posted - Oct 26 2007 :  08:31:53 AM  Show Profile  Reply with Quote
The comment with no end, and the indented brackets are known problems in this situation:

case=6439

However you should be getting the correct number of curly brackets. I do when I test this code.

The missing semi-colon gets us into a pile of edge cases, since some people place macro's at the end of function declarations, or comments, etc. I am wary of trying to handle this sort of invalid code, since we might make other things worse in an attempt to fix this.

zen is the art of being at one with the two'ness
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Jan 27 2009 :  9:20:09 PM  Show Profile  Reply with Quote
case=6439 is fixed in build 1715

Whole Tomato Software, Inc.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000