This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 238396 - not existing class in code completion
Summary: not existing class in code completion
Status: REOPENED
Alias: None
Product: cnd
Classification: Unclassified
Component: Code Completion (show other bugs)
Version: 7.4
Hardware: PC Windows 7
: P3 normal (vote)
Assignee: petrk
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-14 23:33 UTC by Yankes
Modified: 2014-11-23 13:30 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yankes 2013-11-14 23:33:27 UTC
type `class Aaaaaaaaaaaa`, next open code completion.
start deleting characters using backspace.
on code completion will appear names like:

"Aaaaaa"
"Aaaaaaa"
"Aaaaaaaa"
"Aaaaaaaaa"
"Aaaaaaaaa"
"Aaaaaaaaaa"
"Aaaaaaaaaaa"

this items will stay in code completion even if you delete this line complicity.
only way to remove it (except reparsing whole project) is create class with exactly name and delete it.
Comment 1 Alexander Simon 2013-12-30 08:05:09 UTC
I cannot reproduce the bug.
My steps:
- create C/C++ application with C++ main file.
- type class Aaaaaaaaaaaa` in main method, before main method.
Completion works right (there is no series of Aaaa... in the list)
Comment 2 Yankes 2014-04-04 23:47:52 UTC
(In reply to Alexander Simon from comment #1)
> I cannot reproduce the bug.
> My steps:
> - create C/C++ application with C++ main file.
> - type class Aaaaaaaaaaaa` in main method, before main method.
> Completion works right (there is no series of Aaaa... in the list)

I can reproduce this bug. Cause is... `return` keyword :D

--->%--->%--->%---

class ffffff //edit there

int main(int argc, char** argv) //errors: unable to resolve `main`, unexpected `int`
{

//	return 0; //comment is required!
}
--->%--->%--->%---

When you start typing new class you cant add `{}` to fix it.
Comment 3 Alexander Simon 2014-04-05 08:58:04 UTC
(In reply to Yankes from comment #2)
> (In reply to Alexander Simon from comment #1)
> > I cannot reproduce the bug.
> > My steps:
> > - create C/C++ application with C++ main file.
> > - type class Aaaaaaaaaaaa` in main method, before main method.
> > Completion works right (there is no series of Aaaa... in the list)
> 
> I can reproduce this bug. Cause is... `return` keyword :D
> 
> --->%--->%--->%---
> 
> class ffffff //edit there
> 
> int main(int argc, char** argv) //errors: unable to resolve `main`,
> unexpected `int`
> {
> 
> //	return 0; //comment is required!
> }
> --->%--->%--->%---
> 
> When you start typing new class you cant add `{}` to fix it.
Thanks for test. Problem conformed.
This is a dump of code model with "trash" class forward declarations:
========== Dumping model of PROJECT CppApplication_1
CLASS ff (ff ) [2:1/1-2:12/12] lcurly=10 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS fff (fff ) [2:1/1-2:10/10] lcurly=9 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS ffff (ffff ) [2:1/1-2:11/11] lcurly=10 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS fffff (fffff ) [2:1/1-2:12/12] lcurly=11 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS ffffff (ffffff ) [2:1/1-2:13/13] lcurly=12 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS fffffff (fffffff ) [2:1/1-2:14/14] lcurly=13 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS ffffffff (ffffffff ) [2:1/1-2:15/15] lcurly=14 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS fffffffff (fffffffff ) [2:1/1-2:16/16] lcurly=15 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS ffffffffff (ffffffffff ) [2:1/1-2:17/17] lcurly=16 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS fffffffffff (fffffffffff ) [2:1/1-2:18/18] lcurly=17 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS ffffffffffff (ffffffffffff ) [2:1/1-2:19/19] lcurly=18 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS fffffffffffff (fffffffffffff ) [2:1/1-2:20/20] lcurly=19 SCOPE: $Global$ 
    BASE CLASSES:
    MEMBERS:
CLASS ffffffffffffff (ffffffffffffff ) [2:1/1-2:21/21] lcurly=20 SCOPE: FUNCTION DEFINITION main  [4:1/27-8:2/155] FunctionDDImpl SCOPE: $Global$ 
    SIGNATURE main(int,char**)
    UNIQUE NAME f:main(int,char**)
    DECLARATION: main  [4:1/27-8:2/155]
    PARAMETERS:
        argc [4:10/36-4:18/44]  TYPE: int TEXT=int  [4:10/36-4:13/39]  INIT: null  SCOPE: main 
        argv [4:20/46-4:31/57]  TYPE: **char TEXT=char**  [4:20/46-4:26/52]  INIT: null  SCOPE: main 
    RETURNS int TEXT=int  [4:1/27-4:4/30]
    STATEMENT COMPOUND  [5:1/112-8:2/155] SCOPE: main **********************
Comment 4 Vladimir Voskresensky 2014-04-05 19:19:20 UTC
(In reply to Yankes from comment #2)
> When you start typing new class you cant add `{}` to fix it.
There is a nice workaround for you: instead of 
------
class fff
-------
type 
-----
cls 
----
and then just press Tab.
If you'd like to personalize what is inserted, go to Tools->Options->Editor->Code Templates tab and choose C/C++ language
then modify "cls" and "clss" templates