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 class
Resolve.AccessErrorJavaSymbol
static class
Resolve.AmbiguityErrorJavaSymbol
static class
Resolve.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 JavaType
applySubstitution(JavaType type, TypeSubstitution substitution)
JavaType
conditionalExpressionType(ConditionalExpressionTree tree, JavaType trueType, JavaType falseType)
Scope
createStarImportScope(JavaSymbol owner)
Scope
createStaticStarImportScope(JavaSymbol owner)
org.sonar.java.resolve.Resolve.Resolution
findIdent(org.sonar.java.resolve.Resolve.Env env, String name, int kind)
JavaSymbol
findIdentInPackage(JavaSymbol site, String name, int kind)
org.sonar.java.resolve.Resolve.Resolution
findIdentInType(org.sonar.java.resolve.Resolve.Env env, JavaSymbol.TypeJavaSymbol site, String name, int kind)
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.org.sonar.java.resolve.Resolve.Resolution
findMethod(org.sonar.java.resolve.Resolve.Env env, JavaType site, String name, List<JavaType> argTypes)
org.sonar.java.resolve.Resolve.Resolution
findMethod(org.sonar.java.resolve.Resolve.Env env, JavaType site, String name, List<JavaType> argTypes, List<JavaType> typeParams)
List<JavaType>
findSamMethodArgs(Type type)
JavaType
functionType(ParametrizedTypeJavaType javaType)
Optional<JavaSymbol.MethodJavaSymbol>
getSamMethod(JavaType lambdaType)
JavaType
parametrizedTypeWithErasure(ParametrizedTypeJavaType type)
JavaSymbol.TypeJavaSymbol
registerClass(JavaSymbol.TypeJavaSymbol classSymbol)
List<JavaType>
resolveTypeSubstitution(List<JavaType> formals, TypeSubstitution substitution)
JavaType
resolveTypeSubstitution(JavaType type, JavaType definition)
JavaType
resolveTypeSubstitutionWithDiamondOperator(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)
-
-