GoGlobal

io.joern.gosrc2cpg.datastructures.GoGlobal
class GoGlobal

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def checkForDependencyFlags(name: String): Boolean

While processing the dependencies code ignoring package level global variables, constants, types, and functions starting with lower case letter as those are only accessible within package. So those will not be referred from main source code.

While processing the dependencies code ignoring package level global variables, constants, types, and functions starting with lower case letter as those are only accessible within package. So those will not be referred from main source code.

Attributes

def getMethodMetadata(namespace: String, methodName: String): Option[MethodCacheMetaData]
def getStructTypeMemberType(namespace: String, memberName: String): Option[String]
def recordAliasToNamespaceMapping(alias: String, namespace: String): Unit
def recordForThisLamdbdaSignature(signature: String): Unit
def recordForThisNamespace(namespace: String): Boolean
def recordLambdaSigntureToLambdaType(signature: String, lambdaTypeInfo: LambdaTypeInfo): Unit
def recordMethodMetadata(namespace: String, methodName: String, methodMetaData: MethodCacheMetaData): Unit
def recordPkgLevelVarAndConstantAst(pkg: String, ast: Ast, filePath: String): Unit
def recordStructTypeMemberTypeInfo(namespace: String, memberName: String, memberType: String): Unit
def splitNamespaceFromMember(fullName: String): (String, String)

Concrete fields

val aliasToNameSpaceMapping: ConcurrentHashMap[String, String]

This map will only contain the mapping for those packages whose package name is different from the enclosing folder name

This map will only contain the mapping for those packages whose package name is different from the enclosing folder name

e.g

module namespace = joern.io/sample

folder path = <project_root>/lib

package name = fpkg

In above sample as the package name fpkg is different from lib this one will be cached in the map

Attributes

val lambdaSignatureToLambdaTypeMap: ConcurrentHashMap[String, Set[LambdaTypeInfo]]

This map will record the Type FullName of Struct Type defined for Lambda Expression along with return type fullname against the lambda signature.

This map will record the Type FullName of Struct Type defined for Lambda Expression along with return type fullname against the lambda signature.

This will help map the Lambda TypeFullName with the respective Struct Type as supper Type

Attributes

var mainModule: Option[String]
val nameSpaceMetaDataMap: ConcurrentHashMap[String, NameSpaceMetaData]
val pkgLevelVarAndConstantAstMap: ConcurrentHashMap[String, Set[(Ast, String)]]
var processingDependencies: Boolean