Questions
Benchmark
Eclipse
NetBeans
IDEA
VisualStudio
ReSharper
CodeRush
Declaration of undefined entities:
.. testDecl(GPoint p1) ..
GPoint p2;
1.How are they reported in the
IDE?
2. Can undefined types be
distinguished easily?
1. As errors (L4,L5).
2. No, because all errors are equally rendered (red
underline).
1. As errors.
2: In the editor, they are equally rendered (red underline). However, in some
cases, the markers in the left ruler is different.
1. as Unknown symbols.
2. Yes, they are rendered in a different manner (red text color,
customizable by the user).
1. As errors.
2. No, because all errors are equally rendered (red underline).
1. as Unknown symbols.
2. Yes, with a special rendering (red text color).
1. as Errors of kind undeclared element.
2. Yes, they have a special marker.
3.No, constructors are not marked. In both cases,
3. No, constructors are not marked.
Eclipse reports “GPoint cannot be resolved to a type ”. 4. No, the undefined class is only related to a single constructor, and only if the
4. No.
programmer explicitly request the quick fix popup.
3. No, constructors are not marked.
4. No, in both cases, IDEA reports “Cannot resolve symbol
GPoint”.
3. No, constructors are not marked.
4. No, in both cases, VisualStudio reports “The type or Namespace GPoint could not be found”. In
the quick fix popup, only the undefined class is suggested.
3. No, constructors are not marked.
4. No, in both cases, Resharper reports “Cannot resolve symbol GPoint”. In
the quick fix popup, only the undefined class is suggested.
3. No, constructors are not marked.
4. No, this relation is not visible until code generation, and the scope must
be local, i.e. it does not work if the two constructors are used in different
files.
3. No, they are displayed as valid expressions.
4. No.
3. No, they are displayed as valid expressions.
4. No.
3. Yes, They are rendered as unknown Symbols.
4. No, these usages are reported as independent unresolved
symbols.
3. No, they are displayed as valid expressions.
4. No.
3. Yes, They are rendered as unknown Symbols.
4. No, these usages are reported as independent unresolved symbols.
3. Yes, they are rendered as “Error: undeclared element”
4. No, these usages are independently reported.
5. Eclipse does not distinguish undefined members
from other errors.
5. NetBeans does not distinguish undefined members from other errors.
5. as an undefined member
5. VisualStudio does not distinguish undefined members from other errors.
5. as an undefined member
5. as a actual type error, different from an undefined member error.
6. No, those sentences appears as valid (no issues
reported).
6. No, those sentences appears as valid.
6. No, those sentences appears as valid. Only the missing
member is reported.
6. No, those sentences appears as valid.
6. No, those sentences appears as valid.
6. No, those usages appears as valid. Only the undeclared member is
reported.
6. No, only the undefined type is reported.
6. No, only the undefined type is reported.
6. Partially, only m4(new GLine()) is not reported.
6. No, only the undefined type is reported. However, the IDE suggest to overload some methods
with the correct type, e.g. m4.
6. Partially, m2(p1) and m4(new GLine()) are not reported.
6. No, only the undefined type is reported. However, the IDE suggest to
overload the methods with the correct type.
6. No, only the undefined type is reported.
6. No, only the undefined type is reported.
6. Partially, the interaction between undefined entities are not
reported.
6. No, only the undefined type is reported.
6. Partially, the interaction between undefined entities are not reported.
6. No, only the undefined type is reported.
7. No, only class and one constructor can be generated at once.
8. Yes
7. No, only class and one constructor can be generated at
once.
8. Yes
7. No, only class and one constructor can be generated at once.
8. No
7. No, only class and one constructor can be generated at once.
8. Yes
7. Yes, but only if the usages are in the same file.
8. Yes
Creation through two different
constructors:
GPoint p1 = new GPoint(“origin”);
GPoint p2 = new GPoint(1,2);
Definition
3. Are members of undefined
types also reported?
4. Is it possible to easily
identify the current set of
ghost members associated to
Usage of several members:
a single (undefined) type?
p1.setX(4);
p1.setY(3);
5. How are undefined
members of external libraries
reported?
Usage of undefined members in class
String:
String str = “foo”;
str.foo();
Inconsistencies in the return type:
double dist = p1.move(0,0);
boolean wasMoved = p1.move(0,0);
Inconsistencies in the argument type:
... m1(int a) {..} … m2(GLine l) {..}
… m3(List l){..} … m4(GPoint p){..}
m1(1);
m1(p1);
m2(new GLine()); m2(p1);
m3(p1);
m4(new GLine());
Verification
6.Is the use of undefined
entities subject to type
checking?
Inconsistencies wrt a local variable:
int a = p1;
GPoint p3 = new GLine();
List l = p1;
Generation
7. No, multiple request are needed.
7.Can an undefined entity be Triggering the generation action:
fully generated in a single
Generate the code stub for the above 8. Yes.
click?
examples
8. Does generation force a
switch to the buffer of the new
entity?
© Copyright 2026 Paperzz