|
|||||
FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
we use LowerCaseClass to limit the resolving the compiler does for vanilla names starting with a lower case letter. The idea that if we use a vanilla name with a lower case letter, that this is in most cases no class. If it is a class the class needs to be imported explicitly. The efffect is that in an expression like "def foo = bar" we do not have to use a loadClass call to check the name foo and bar for being classes. Instead we will ask the module for an alias for this name which is much faster.
Field Summary | |
---|---|
String |
className
|
Constructor Summary | |
LowerCaseClass(String name)
|
Constructor Detail |
---|
public LowerCaseClass(String name)
Method Detail |
---|
public def ResolveVisitor(CompilationUnit cu)
void ambiguousClass(ClassNode type, ClassNode iType, String name)
Expression correctClassClassChain(PropertyExpression pe)
public String getName()
SourceUnit getSourceUnit()
long getTimeStamp(Class cls)
public boolean hasPackageName()
boolean isSourceNewer(URL source, Class cls)
String lookupClassName(PropertyExpression pe)
String replaceLastPoint(String name)
boolean resolve(ClassNode type)
boolean resolve(ClassNode type, boolean testModuleImports, boolean testDefaultImports, boolean testStaticInnerClasses)
boolean resolveAliasFromModule(ClassNode type)
boolean resolveFromClassCache(ClassNode type)
boolean resolveFromCompileUnit(ClassNode type)
boolean resolveFromDefaultImports(ClassNode type, boolean testDefaultImports)
boolean resolveFromModule(ClassNode type, boolean testModuleImports)
boolean resolveFromStaticInnerClasses(ClassNode type, boolean testStaticInnerClasses)
void resolveGenericsHeader(def types)
void resolveGenericsType(GenericsType genericsType)
void resolveGenericsTypes(def types)
void resolveOrFail(ClassNode type, String msg, ASTNode node)
void resolveOrFail(ClassNode type, ASTNode node, boolean prefereImports)
void resolveOrFail(ClassNode type, ASTNode node)
boolean resolveToClass(ClassNode type)
boolean resolveToInner(ClassNode type)
boolean resolveToScript(ClassNode type)
void setClass(ClassNode n, Class cls)
public String setName(String name)
public void startResolving(ClassNode node, SourceUnit source)
boolean testVanillaNameForClass(String name)
public Expression transform(Expression exp)
Expression transformAnnotationConstantExpression(AnnotationConstantExpression ace)
Expression transformBinaryExpression(BinaryExpression be)
Expression transformClosureExpression(ClosureExpression ce)
Expression transformConstructorCallExpression(ConstructorCallExpression cce)
Expression transformDeclarationExpression(DeclarationExpression de)
Expression transformMethodCallExpression(MethodCallExpression mce)
Expression transformPropertyExpression(PropertyExpression pe)
Expression transformVariableExpression(VariableExpression ve)
public void visitAnnotations(AnnotatedNode node)
public void visitBlockStatement(BlockStatement block)
public void visitCatchStatement(CatchStatement cs)
public void visitClass(ClassNode node)
void visitConstructorOrMethod(MethodNode node, boolean isConstructor)
public void visitField(FieldNode node)
public void visitForLoop(ForStatement forLoop)
public void visitProperty(PropertyNode node)