Package org.sonar.java.resolve
Class Resolve
- java.lang.Object
-
- org.sonar.java.resolve.Resolve
-
public class Resolve extends Object
Routines for name resolution. Lookup by name and then filter by type is performant, because amount of symbols with same name are relatively small. Naming conventions: env - is the environment where the symbol was mentioned site - is the type of which symbol is a member name - is the symbol's name TODO site should be represented by class Type
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classResolve.AccessErrorJavaSymbolstatic classResolve.AmbiguityErrorJavaSymbolstatic classResolve.JavaSymbolNotFound
-
Constructor Summary
Constructors Constructor Description Resolve(Symbols symbols, BytecodeCompleter bytecodeCompleter, ParametrizedTypeCache parametrizedTypeCache)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JavaTypeapplySubstitution(JavaType type, TypeSubstitution substitution)JavaTypeconditionalExpressionType(ConditionalExpressionTree tree, JavaType trueType, JavaType falseType)ScopecreateStarImportScope(JavaSymbol owner)ScopecreateStaticStarImportScope(JavaSymbol owner)org.sonar.java.resolve.Resolve.ResolutionfindIdent(org.sonar.java.resolve.Resolve.Env env, String name, int kind)JavaSymbolfindIdentInPackage(JavaSymbol site, String name, int kind)org.sonar.java.resolve.Resolve.ResolutionfindIdentInType(org.sonar.java.resolve.Resolve.Env env, JavaSymbol.TypeJavaSymbol site, String name, int kind)org.sonar.java.resolve.Resolve.ResolutionfindMethod(org.sonar.java.resolve.Resolve.Env env, String name, List<JavaType> argTypes, List<JavaType> typeParamTypes)Finds method matching given name and types of arguments.org.sonar.java.resolve.Resolve.ResolutionfindMethod(org.sonar.java.resolve.Resolve.Env env, JavaType site, String name, List<JavaType> argTypes)org.sonar.java.resolve.Resolve.ResolutionfindMethod(org.sonar.java.resolve.Resolve.Env env, JavaType site, String name, List<JavaType> argTypes, List<JavaType> typeParams)List<JavaType>findSamMethodArgs(Type type)JavaTypefunctionType(ParametrizedTypeJavaType javaType)Optional<JavaSymbol.MethodJavaSymbol>getSamMethod(JavaType lambdaType)JavaTypeparametrizedTypeWithErasure(ParametrizedTypeJavaType type)JavaSymbol.TypeJavaSymbolregisterClass(JavaSymbol.TypeJavaSymbol classSymbol)List<JavaType>resolveTypeSubstitution(List<JavaType> formals, TypeSubstitution substitution)JavaTyperesolveTypeSubstitution(JavaType type, JavaType definition)JavaTyperesolveTypeSubstitutionWithDiamondOperator(ParametrizedTypeJavaType type, JavaType definition)
-
-
-
Constructor Detail
-
Resolve
public Resolve(Symbols symbols, BytecodeCompleter bytecodeCompleter, ParametrizedTypeCache parametrizedTypeCache)
-
-
Method Detail
-
registerClass
public JavaSymbol.TypeJavaSymbol registerClass(JavaSymbol.TypeJavaSymbol classSymbol)
-
createStarImportScope
public Scope createStarImportScope(JavaSymbol owner)
-
createStaticStarImportScope
public Scope createStaticStarImportScope(JavaSymbol owner)
-
functionType
public JavaType functionType(ParametrizedTypeJavaType javaType)
-
resolveTypeSubstitution
public JavaType resolveTypeSubstitution(JavaType type, JavaType definition)
-
resolveTypeSubstitution
public List<JavaType> resolveTypeSubstitution(List<JavaType> formals, TypeSubstitution substitution)
-
applySubstitution
public JavaType applySubstitution(JavaType type, TypeSubstitution substitution)
-
resolveTypeSubstitutionWithDiamondOperator
public JavaType resolveTypeSubstitutionWithDiamondOperator(ParametrizedTypeJavaType type, JavaType definition)
-
parametrizedTypeWithErasure
public JavaType parametrizedTypeWithErasure(ParametrizedTypeJavaType type)
-
findIdent
public org.sonar.java.resolve.Resolve.Resolution findIdent(org.sonar.java.resolve.Resolve.Env env, String name, int kind)- Parameters:
kind- subset ofJavaSymbol.VAR,JavaSymbol.TYP,JavaSymbol.PCK
-
findIdentInPackage
public JavaSymbol findIdentInPackage(JavaSymbol site, String name, int kind)
- Parameters:
kind- subset ofJavaSymbol.TYP,JavaSymbol.PCK
-
findIdentInType
public org.sonar.java.resolve.Resolve.Resolution findIdentInType(org.sonar.java.resolve.Resolve.Env env, JavaSymbol.TypeJavaSymbol site, String name, int kind)- Parameters:
kind- subset ofJavaSymbol.VAR,JavaSymbol.TYP
-
findMethod
public org.sonar.java.resolve.Resolve.Resolution findMethod(org.sonar.java.resolve.Resolve.Env env, String name, List<JavaType> argTypes, List<JavaType> typeParamTypes)Finds method matching given name and types of arguments.
-
findMethod
public org.sonar.java.resolve.Resolve.Resolution findMethod(org.sonar.java.resolve.Resolve.Env env, JavaType site, String name, List<JavaType> argTypes)
-
findMethod
public org.sonar.java.resolve.Resolve.Resolution findMethod(org.sonar.java.resolve.Resolve.Env env, JavaType site, String name, List<JavaType> argTypes, List<JavaType> typeParams)
-
conditionalExpressionType
public JavaType conditionalExpressionType(ConditionalExpressionTree tree, JavaType trueType, JavaType falseType)
-
getSamMethod
public Optional<JavaSymbol.MethodJavaSymbol> getSamMethod(JavaType lambdaType)
-
-