From 782a9d34b50eebc9af37945bea0223ad13231cf2 Mon Sep 17 00:00:00 2001 From: Johannes Coetzee Date: Wed, 2 Jul 2025 15:41:17 +0200 Subject: [PATCH 1/2] Bump flatgraph and regenerate domain classes --- build.sbt | 2 +- .../generated/PropertyDefaults.scala | 63 ++++ .../generated/PropertyNames.java | 324 ---------------- .../generated/PropertyNames.scala | 347 ++++++++++++++++++ .../generated/nodes/Annotation.scala | 127 +------ .../generated/nodes/AnnotationLiteral.scala | 115 +----- .../generated/nodes/AnnotationParameter.scala | 76 +--- .../nodes/AnnotationParameterAssign.scala | 76 +--- .../generated/nodes/ArrayInitializer.scala | 107 +----- .../generated/nodes/BaseTypes.scala | 30 -- .../generated/nodes/Binding.scala | 44 +-- .../generated/nodes/Block.scala | 139 +------ .../generated/nodes/Call.scala | 191 +--------- .../generated/nodes/ClosureBinding.scala | 49 +-- .../generated/nodes/Comment.scala | 92 +---- .../generated/nodes/ConfigFile.scala | 28 +- .../generated/nodes/ControlStructure.scala | 130 +------ .../generated/nodes/Dependency.scala | 35 +- .../generated/nodes/FieldIdentifier.scala | 125 +------ .../generated/nodes/File.scala | 111 +----- .../generated/nodes/Finding.scala | 22 +- .../generated/nodes/Identifier.scala | 147 +------- .../generated/nodes/Import.scala | 135 +------ .../generated/nodes/JumpLabel.scala | 92 +---- .../generated/nodes/JumpTarget.scala | 112 +----- .../generated/nodes/KeyValuePair.scala | 24 +- .../generated/nodes/Literal.scala | 139 +------ .../generated/nodes/Local.scala | 142 +------ .../generated/nodes/Member.scala | 152 +------- .../generated/nodes/MetaData.scala | 70 +--- .../generated/nodes/Method.scala | 209 +---------- .../generated/nodes/MethodParameterIn.scala | 170 +-------- .../generated/nodes/MethodParameterOut.scala | 141 +------ .../generated/nodes/MethodRef.scala | 151 +------- .../generated/nodes/MethodReturn.scala | 127 +------ .../generated/nodes/Modifier.scala | 88 +---- .../generated/nodes/Namespace.scala | 84 +---- .../generated/nodes/NamespaceBlock.scala | 112 +----- .../generated/nodes/Return.scala | 107 +----- .../generated/nodes/Tag.scala | 24 +- .../generated/nodes/TagNodePair.scala | 9 +- .../generated/nodes/TemplateDom.scala | 115 +----- .../generated/nodes/Type.scala | 41 +-- .../generated/nodes/TypeArgument.scala | 76 +--- .../generated/nodes/TypeDecl.scala | 180 +-------- .../generated/nodes/TypeParameter.scala | 84 +---- .../generated/nodes/TypeRef.scala | 139 +------ .../generated/nodes/Unknown.scala | 159 +------- .../generated/traversals/package.scala | 1 + 49 files changed, 857 insertions(+), 4406 deletions(-) create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala delete mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.java create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala diff --git a/build.sbt b/build.sbt index 07e317a19..92b5d41e5 100644 --- a/build.sbt +++ b/build.sbt @@ -1,7 +1,7 @@ name := "codepropertygraph" // parsed by project/Versions.scala, updated by updateDependencies.sh -val flatgraphVersion = "0.1.15" +val flatgraphVersion = "0.1.17+4-af1b4582+20250702-1537" inThisBuild( List( diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala new file mode 100644 index 000000000..71ae0663c --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala @@ -0,0 +1,63 @@ +package io.shiftleft.codepropertygraph.generated + +object PropertyDefaults { + val ArgumentIndex = -1: Int + + val AstParentFullName = "" + + val AstParentType = "" + + val CanonicalName = "" + + val Code = "" + + val ContainedRef = "" + + val Content = "" + + val ControlStructureType = "" + + val DispatchType = "" + + val EvaluationStrategy = "" + + val Filename = "" + + val FullName = "" + + val GenericSignature = "" + + val Index = -1: Int + + val IsExternal = false + + val IsVariadic = false + + val Key = "" + + val Language = "" + + val MethodFullName = "" + + val ModifierType = "" + + val Name = "" + + val Order = -1: Int + + val ParserTypeName = "" + + val Root = "" + + val Signature = "" + + val TypeDeclFullName = "" + + val TypeFullName = "" + + val Value = "" + + val Variable = "" + + val Version = "" +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.java b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.java deleted file mode 100644 index 7fe2f9760..000000000 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.java +++ /dev/null @@ -1,324 +0,0 @@ -package io.shiftleft.codepropertygraph.generated; - -import java.util.HashSet; -import java.util.Set; - -public class PropertyNames { - -/** This property holds the fully qualified name of the type that the node is -a type alias of. */ -public static final String ALIAS_TYPE_FULL_NAME = "ALIAS_TYPE_FULL_NAME"; - -/** AST-children of CALL nodes have an argument index, that is used to match -call-site arguments with callee parameters. Explicit parameters are numbered -from 1 to N, while index 0 is reserved for implicit self / this parameter. -CALLs without implicit parameter therefore have arguments starting with index 1. -AST-children of BLOCK nodes may have an argument index as well; in this case, -the last argument index determines the return expression of a BLOCK expression. -If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is -ignored. It is suggested to set it to -1. */ -public static final String ARGUMENT_INDEX = "ARGUMENT_INDEX"; - -/** For calls involving named parameters, the `ARGUMENT_NAME` field holds the -name of the parameter initialized by the expression. For all other calls, -this field is unset. */ -public static final String ARGUMENT_NAME = "ARGUMENT_NAME"; - -/** This field holds the FULL_NAME of the AST parent of an entity. */ -public static final String AST_PARENT_FULL_NAME = "AST_PARENT_FULL_NAME"; - -/** The type of the AST parent. Since this is only used in some parts of the graph, -the list does not include all possible parents by intention. -Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. */ -public static final String AST_PARENT_TYPE = "AST_PARENT_TYPE"; - -/** This field holds the canonical name of a `FIELD_IDENTIFIER`. It is typically -identical to the CODE field, but canonicalized according to source language -semantics. Human readable names are preferable. `FIELD_IDENTIFIER` nodes must -share identical `CANONICAL_NAME` if and -only if they alias, e.g., in C-style unions (if the aliasing relationship is -unknown or there are partial overlaps, then one must make a reasonable guess, -and trade off between false negatives and false positives). */ -public static final String CANONICAL_NAME = "CANONICAL_NAME"; - -/** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with the corresponding CLOSURE_BINDING nodes */ -public static final String CLOSURE_BINDING_ID = "CLOSURE_BINDING_ID"; - -/** Deprecated. Create an explict REF edge instead. Formerly the original name of the (potentially mangled) captured variable */ -public static final String CLOSURE_ORIGINAL_NAME = "CLOSURE_ORIGINAL_NAME"; - -/** This field holds the code snippet that the node represents. */ -public static final String CODE = "CODE"; - -/** This optional fields provides the column number of the program construct -represented by the node. */ -public static final String COLUMN_NUMBER = "COLUMN_NUMBER"; - -/** This optional fields provides the column number at which the program construct -represented by the node ends. */ -public static final String COLUMN_NUMBER_END = "COLUMN_NUMBER_END"; - -/** References to other nodes. This is not a real property; it exists here for the sake of proto serialization only. valueType and cardinality are meaningless. */ -public static final String CONTAINED_REF = "CONTAINED_REF"; - -/** Certain files, e.g., configuration files, may be included in the CPG as-is. -For such files, the `CONTENT` field contains the files content. */ -public static final String CONTENT = "CONTENT"; - -/** The `CONTROL_STRUCTURE_TYPE` field indicates which kind of control structure -a `CONTROL_STRUCTURE` node represents. The available types are the following: - BREAK, CONTINUE, DO, WHILE, FOR, GOTO, IF, ELSE, TRY, THROW and SWITCH. */ -public static final String CONTROL_STRUCTURE_TYPE = "CONTROL_STRUCTURE_TYPE"; - -/** The group ID for a dependency */ -public static final String DEPENDENCY_GROUP_ID = "DEPENDENCY_GROUP_ID"; - -/** This field holds the dispatch type of a call, which is either `STATIC_DISPATCH` or -`DYNAMIC_DISPATCH`. For statically dispatched method calls, the call target is known -at compile time while for dynamically dispatched calls, it can only be determined at -runtime as it may depend on the type of an object (as is the case for virtual method -calls) or calculation of an offset. */ -public static final String DISPATCH_TYPE = "DISPATCH_TYPE"; - -/** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ -public static final String DYNAMIC_TYPE_HINT_FULL_NAME = "DYNAMIC_TYPE_HINT_FULL_NAME"; - -/** For formal method input parameters, output parameters, and return parameters, -this field holds the evaluation strategy, which is one of the following: -1) `BY_REFERENCE` indicates that the parameter is passed by reference, 2) -`BY_VALUE` indicates that it is passed by value, that is, a copy is made, -3) `BY_SHARING` the parameter is a pointer/reference and it is shared with -the caller/callee. While a copy of the pointer is made, a copy of the object -that it points to is not made. */ -public static final String EVALUATION_STRATEGY = "EVALUATION_STRATEGY"; - -/** Optional description for nodes in evidence. Used to give a hint about the kind of evidence -provided by a node. The evidence description and evidence nodes are associated by index. */ -public static final String EVIDENCE_DESCRIPTION = "EVIDENCE_DESCRIPTION"; - -/** Specifies whether the IMPORTED_AS property was explicitly present in the code. -For languages like Java which do not allow a renaming during import this is -always false. For e.g. Kotlin it depends on the existence of the "as" keyword. */ -public static final String EXPLICIT_AS = "EXPLICIT_AS"; - -/** The path of the source file this node was generated from, relative to the root -path in the meta data node. This field must be set but may be set to the value `` to -indicate that no source file can be associated with the node, e.g., because the node represents -an entity known to exist because it is referenced, but for which the file that is is declared in -is unknown. */ -public static final String FILENAME = "FILENAME"; - -/** This is the fully-qualified name of an entity, e.g., the fully-qualified -name of a method or type. The details of what constitutes a fully-qualified -name are language specific. This field SHOULD be human readable. */ -public static final String FULL_NAME = "FULL_NAME"; - -/** This field is experimental. It will likely be removed in the future without any notice. -It stores type information for generic types and methods as well as type information -for members and locals where the type either contains a type parameter reference or -an instantiated type reference. */ -public static final String GENERIC_SIGNATURE = "GENERIC_SIGNATURE"; - -/** This property contains a hash value in the form of a string. -Hashes can be used to summarize data, e.g., to summarize the -contents of source files or sub graphs. Such summaries are useful -to determine whether code has already been analyzed in incremental -analysis pipelines. This property is optional to allow its calculation -to be deferred or skipped if the hash is not needed. */ -public static final String HASH = "HASH"; - -/** The identifier under which the import can be accessed in the importing context. -For a Java import this is always identical to the class name. But e.g. for a -Kotlin import like "import java.nio.ByteBuffer as BBuffer" this would be "BBuffer". -This property is ignored if IS_WILDCARD is true. */ -public static final String IMPORTED_AS = "IMPORTED_AS"; - -/** The identifying string of the imported entity. -For a Java import like "import java.nio.ByteBuffer;" this would be "java.nio.ByteBuffer". */ -public static final String IMPORTED_ENTITY = "IMPORTED_ENTITY"; - -/** Specifies an index, e.g., for a parameter or argument. - Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit - self / this parameter. */ -public static final String INDEX = "INDEX"; - -/** The static types a TYPE_DECL inherits from. This property is matched against the -FULL_NAME of TYPE nodes and thus it is required to have at least one TYPE node -for each TYPE_FULL_NAME */ -public static final String INHERITS_FROM_TYPE_FULL_NAME = "INHERITS_FROM_TYPE_FULL_NAME"; - -/** Specifies whether this is an explicit import. -Most languages have implicit default imports of some standard library elements -and this flag is used to distinguish those from explicit imports found in the -code base. */ -public static final String IS_EXPLICIT = "IS_EXPLICIT"; - -/** Indicates that the construct (METHOD or TYPE_DECL) is external, that is, -it is referenced but not defined in the code (applies both to insular -parsing and to library functions where we have header files only) */ -public static final String IS_EXTERNAL = "IS_EXTERNAL"; - -/** Specifies whether a parameter is the variadic argument handling parameter of -a variadic method. Only one parameter of a method is allowed to have this -property set to true. */ -public static final String IS_VARIADIC = "IS_VARIADIC"; - -/** Specifies whether this is a wildcard import. -For a Java import like "import java.nio.*;" IS_WILDCARD would be "true" and -IMPORTED_ENTITY would be "java.nio". -For wildcard imports the IMPORTED_AS property is ignored. */ -public static final String IS_WILDCARD = "IS_WILDCARD"; - -/** This property denotes a key of a key-value pair. */ -public static final String KEY = "KEY"; - -/** This field indicates which CPG language frontend generated the CPG. -Frontend developers may freely choose a value that describes their frontend -so long as it is not used by an existing frontend. Reserved values are to date: -C, LLVM, GHIDRA, PHP. */ -public static final String LANGUAGE = "LANGUAGE"; - -/** This optional field provides the line number of the program construct -represented by the node. */ -public static final String LINE_NUMBER = "LINE_NUMBER"; - -/** This optional fields provides the line number at which the program construct -represented by the node ends. */ -public static final String LINE_NUMBER_END = "LINE_NUMBER_END"; - -/** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required -to have exactly one METHOD node for each METHOD_FULL_NAME */ -public static final String METHOD_FULL_NAME = "METHOD_FULL_NAME"; - -/** The modifier type is a free-form string. The following are known modifier types: -`STATIC`, `PUBLIC`, `PROTECTED`, `PRIVATE`, `ABSTRACT`, `NATIVE`, `CONSTRUCTOR`, `VIRTUAL`. */ -public static final String MODIFIER_TYPE = "MODIFIER_TYPE"; - -/** Name of represented object, e.g., method name (e.g. "run") */ -public static final String NAME = "NAME"; - -/** Start offset into the CONTENT property of the corresponding FILE node. -The offset is such that parts of the content can easily -be accessed via `content.substring(offset, offsetEnd)`. -This means that the offset must be measured in utf16 encoding (i.e. neither in -characters/codeunits nor in byte-offsets into a utf8 encoding). -E.g. for METHOD nodes this start offset points to the start of the methods -source code in the string holding the source code of the entire file. */ -public static final String OFFSET = "OFFSET"; - -/** End offset (exclusive) into the CONTENT property of the corresponding FILE node. -See OFFSET documentation for finer details. -E.g. for METHOD nodes this end offset points to the first code position which is -not part of the method. */ -public static final String OFFSET_END = "OFFSET_END"; - -/** This integer indicates the position of the node among -its siblings in the AST. The left-most child has an -order of 0. */ -public static final String ORDER = "ORDER"; - -/** The field contains the names of the overlays applied to this CPG, in order of their -application. Names are free-form strings, that is, this specification does not -dictate them but rather requires tool producers and consumers to communicate them -between each other. */ -public static final String OVERLAYS = "OVERLAYS"; - -/** AST node type name emitted by parser. */ -public static final String PARSER_TYPE_NAME = "PARSER_TYPE_NAME"; - -/** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are correct. This property is used to capture observations between node interactions during a 'may-analysis'. */ -public static final String POSSIBLE_TYPES = "POSSIBLE_TYPES"; - -/** The path to the root directory of the source/binary this CPG is generated from. */ -public static final String ROOT = "ROOT"; - -/** ID from a different context, e.g. if the graph was imported from a different format, -we can use this to preserve the link to the original */ -public static final String SECONDARY_ID = "SECONDARY_ID"; - -/** The method signature encodes the types of parameters in a string. -The string SHOULD be human readable and suitable for differentiating methods -with different parameter types sufficiently to allow for resolving of -function overloading. The present specification does not enforce a strict -format for the signature, that is, it can be chosen by the frontend -implementor to fit the source language. */ -public static final String SIGNATURE = "SIGNATURE"; - -/** The static type decl of a TYPE. This property is matched against the FULL_NAME -of TYPE_DECL nodes. It is required to have exactly one TYPE_DECL for each -different TYPE_DECL_FULL_NAME */ -public static final String TYPE_DECL_FULL_NAME = "TYPE_DECL_FULL_NAME"; - -/** This field contains the fully-qualified static type name of the program -construct represented by a node. It is the name of an instantiated type, e.g., -`java.util.List`, rather than `java.util.List[T]`. If the type -cannot be determined, this field should be set to the empty string. */ -public static final String TYPE_FULL_NAME = "TYPE_FULL_NAME"; - -/** This property denotes a string value as used in a key-value pair. */ -public static final String VALUE = "VALUE"; - -/** This edge property represents the variable propagated by a reaching definition edge. */ -public static final String VARIABLE = "VARIABLE"; - -/** A version, given as a string. Used, for example, in the META_DATA node to -indicate which version of the CPG spec this CPG conforms to */ -public static final String VERSION = "VERSION"; - -public static Set ALL = new HashSet() {{ -add(ALIAS_TYPE_FULL_NAME); -add(ARGUMENT_INDEX); -add(ARGUMENT_NAME); -add(AST_PARENT_FULL_NAME); -add(AST_PARENT_TYPE); -add(CANONICAL_NAME); -add(CLOSURE_BINDING_ID); -add(CLOSURE_ORIGINAL_NAME); -add(CODE); -add(COLUMN_NUMBER); -add(COLUMN_NUMBER_END); -add(CONTAINED_REF); -add(CONTENT); -add(CONTROL_STRUCTURE_TYPE); -add(DEPENDENCY_GROUP_ID); -add(DISPATCH_TYPE); -add(DYNAMIC_TYPE_HINT_FULL_NAME); -add(EVALUATION_STRATEGY); -add(EVIDENCE_DESCRIPTION); -add(EXPLICIT_AS); -add(FILENAME); -add(FULL_NAME); -add(GENERIC_SIGNATURE); -add(HASH); -add(IMPORTED_AS); -add(IMPORTED_ENTITY); -add(INDEX); -add(INHERITS_FROM_TYPE_FULL_NAME); -add(IS_EXPLICIT); -add(IS_EXTERNAL); -add(IS_VARIADIC); -add(IS_WILDCARD); -add(KEY); -add(LANGUAGE); -add(LINE_NUMBER); -add(LINE_NUMBER_END); -add(METHOD_FULL_NAME); -add(MODIFIER_TYPE); -add(NAME); -add(OFFSET); -add(OFFSET_END); -add(ORDER); -add(OVERLAYS); -add(PARSER_TYPE_NAME); -add(POSSIBLE_TYPES); -add(ROOT); -add(SECONDARY_ID); -add(SIGNATURE); -add(TYPE_DECL_FULL_NAME); -add(TYPE_FULL_NAME); -add(VALUE); -add(VARIABLE); -add(VERSION); -}}; - -} \ No newline at end of file diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala new file mode 100644 index 000000000..0e70d02c2 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala @@ -0,0 +1,347 @@ +package io.shiftleft.codepropertygraph.generated + +import java.util.{HashSet, Set} +import scala.jdk.CollectionConverters.SeqHasAsJava + +object PropertyNames { + + /** This property holds the fully qualified name of the type that the node is a type alias of. + */ + val AliasTypeFullName: String = "ALIAS_TYPE_FULL_NAME" + + /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee + * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this + * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of BLOCK + * nodes may have an argument index as well; in this case, the last argument index determines the return expression + * of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is ignored. It is + * suggested to set it to -1. + */ + val ArgumentIndex: String = "ARGUMENT_INDEX" + + /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by the + * expression. For all other calls, this field is unset. + */ + val ArgumentName: String = "ARGUMENT_NAME" + + /** This field holds the FULL_NAME of the AST parent of an entity. */ + val AstParentFullName: String = "AST_PARENT_FULL_NAME" + + /** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all + * possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. + */ + val AstParentType: String = "AST_PARENT_TYPE" + + /** This field holds the canonical name of a `FIELD_IDENTIFIER`. It is typically identical to the CODE field, but + * canonicalized according to source language semantics. Human readable names are preferable. `FIELD_IDENTIFIER` + * nodes must share identical `CANONICAL_NAME` if and only if they alias, e.g., in C-style unions (if the aliasing + * relationship is unknown or there are partial overlaps, then one must make a reasonable guess, and trade off + * between false negatives and false positives). + */ + val CanonicalName: String = "CANONICAL_NAME" + + /** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with + * the corresponding CLOSURE_BINDING nodes + */ + val ClosureBindingId: String = "CLOSURE_BINDING_ID" + + /** Deprecated. Create an explict REF edge instead. Formerly the original name of the (potentially mangled) captured + * variable + */ + val ClosureOriginalName: String = "CLOSURE_ORIGINAL_NAME" + + /** This field holds the code snippet that the node represents. */ + val Code: String = "CODE" + + /** This optional fields provides the column number of the program construct represented by the node. + */ + val ColumnNumber: String = "COLUMN_NUMBER" + + /** This optional fields provides the column number at which the program construct represented by the node ends. + */ + val ColumnNumberEnd: String = "COLUMN_NUMBER_END" + + /** References to other nodes. This is not a real property; it exists here for the sake of proto serialization only. + * valueType and cardinality are meaningless. + */ + val ContainedRef: String = "CONTAINED_REF" + + /** Certain files, e.g., configuration files, may be included in the CPG as-is. For such files, the `CONTENT` field + * contains the files content. + */ + val Content: String = "CONTENT" + + /** The `CONTROL_STRUCTURE_TYPE` field indicates which kind of control structure a `CONTROL_STRUCTURE` node + * represents. The available types are the following: BREAK, CONTINUE, DO, WHILE, FOR, GOTO, IF, ELSE, TRY, THROW and + * SWITCH. + */ + val ControlStructureType: String = "CONTROL_STRUCTURE_TYPE" + + /** The group ID for a dependency */ + val DependencyGroupId: String = "DEPENDENCY_GROUP_ID" + + /** This field holds the dispatch type of a call, which is either `STATIC_DISPATCH` or `DYNAMIC_DISPATCH`. For + * statically dispatched method calls, the call target is known at compile time while for dynamically dispatched + * calls, it can only be determined at runtime as it may depend on the type of an object (as is the case for virtual + * method calls) or calculation of an offset. + */ + val DispatchType: String = "DISPATCH_TYPE" + + /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ + val DynamicTypeHintFullName: String = "DYNAMIC_TYPE_HINT_FULL_NAME" + + /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation + * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, 2) + * `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a + * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the + * object that it points to is not made. + */ + val EvaluationStrategy: String = "EVALUATION_STRATEGY" + + /** Optional description for nodes in evidence. Used to give a hint about the kind of evidence provided by a node. The + * evidence description and evidence nodes are associated by index. + */ + val EvidenceDescription: String = "EVIDENCE_DESCRIPTION" + + /** Specifies whether the IMPORTED_AS property was explicitly present in the code. For languages like Java which do + * not allow a renaming during import this is always false. For e.g. Kotlin it depends on the existence of the "as" + * keyword. + */ + val ExplicitAs: String = "EXPLICIT_AS" + + /** The path of the source file this node was generated from, relative to the root path in the meta data node. This + * field must be set but may be set to the value `` to indicate that no source file can be associated with + * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the + * file that is is declared in is unknown. + */ + val Filename: String = "FILENAME" + + /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details of + * what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. + */ + val FullName: String = "FULL_NAME" + + /** This field is experimental. It will likely be removed in the future without any notice. It stores type information + * for generic types and methods as well as type information for members and locals where the type either contains a + * type parameter reference or an instantiated type reference. + */ + val GenericSignature: String = "GENERIC_SIGNATURE" + + /** This property contains a hash value in the form of a string. Hashes can be used to summarize data, e.g., to + * summarize the contents of source files or sub graphs. Such summaries are useful to determine whether code has + * already been analyzed in incremental analysis pipelines. This property is optional to allow its calculation to be + * deferred or skipped if the hash is not needed. + */ + val Hash: String = "HASH" + + /** The identifier under which the import can be accessed in the importing context. For a Java import this is always + * identical to the class name. But e.g. for a Kotlin import like "import java.nio.ByteBuffer as BBuffer" this would + * be "BBuffer". This property is ignored if IS_WILDCARD is true. + */ + val ImportedAs: String = "IMPORTED_AS" + + /** The identifying string of the imported entity. For a Java import like "import java.nio.ByteBuffer;" this would be + * "java.nio.ByteBuffer". + */ + val ImportedEntity: String = "IMPORTED_ENTITY" + + /** Specifies an index, e.g., for a parameter or argument. Explicit parameters are numbered from 1 to N, while index 0 + * is reserved for implicit self / this parameter. + */ + val Index: String = "INDEX" + + /** The static types a TYPE_DECL inherits from. This property is matched against the FULL_NAME of TYPE nodes and thus + * it is required to have at least one TYPE node for each TYPE_FULL_NAME + */ + val InheritsFromTypeFullName: String = "INHERITS_FROM_TYPE_FULL_NAME" + + /** Specifies whether this is an explicit import. Most languages have implicit default imports of some standard + * library elements and this flag is used to distinguish those from explicit imports found in the code base. + */ + val IsExplicit: String = "IS_EXPLICIT" + + /** Indicates that the construct (METHOD or TYPE_DECL) is external, that is, it is referenced but not defined in the + * code (applies both to insular parsing and to library functions where we have header files only) + */ + val IsExternal: String = "IS_EXTERNAL" + + /** Specifies whether a parameter is the variadic argument handling parameter of a variadic method. Only one parameter + * of a method is allowed to have this property set to true. + */ + val IsVariadic: String = "IS_VARIADIC" + + /** Specifies whether this is a wildcard import. For a Java import like "import java.nio.*;" IS_WILDCARD would be + * "true" and IMPORTED_ENTITY would be "java.nio". For wildcard imports the IMPORTED_AS property is ignored. + */ + val IsWildcard: String = "IS_WILDCARD" + + /** This property denotes a key of a key-value pair. */ + val Key: String = "KEY" + + /** This field indicates which CPG language frontend generated the CPG. Frontend developers may freely choose a value + * that describes their frontend so long as it is not used by an existing frontend. Reserved values are to date: C, + * LLVM, GHIDRA, PHP. + */ + val Language: String = "LANGUAGE" + + /** This optional field provides the line number of the program construct represented by the node. + */ + val LineNumber: String = "LINE_NUMBER" + + /** This optional fields provides the line number at which the program construct represented by the node ends. + */ + val LineNumberEnd: String = "LINE_NUMBER_END" + + /** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node for + * each METHOD_FULL_NAME + */ + val MethodFullName: String = "METHOD_FULL_NAME" + + /** The modifier type is a free-form string. The following are known modifier types: `STATIC`, `PUBLIC`, `PROTECTED`, + * `PRIVATE`, `ABSTRACT`, `NATIVE`, `CONSTRUCTOR`, `VIRTUAL`. + */ + val ModifierType: String = "MODIFIER_TYPE" + + /** Name of represented object, e.g., method name (e.g. "run") */ + val Name: String = "NAME" + + /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the + * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be + * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. + * for METHOD nodes this start offset points to the start of the methods source code in the string holding the source + * code of the entire file. + */ + val Offset: String = "OFFSET" + + /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for + * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the + * method. + */ + val OffsetEnd: String = "OFFSET_END" + + /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order of + * 0. + */ + val Order: String = "ORDER" + + /** The field contains the names of the overlays applied to this CPG, in order of their application. Names are + * free-form strings, that is, this specification does not dictate them but rather requires tool producers and + * consumers to communicate them between each other. + */ + val Overlays: String = "OVERLAYS" + + /** AST node type name emitted by parser. */ + val ParserTypeName: String = "PARSER_TYPE_NAME" + + /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are + * correct. This property is used to capture observations between node interactions during a 'may-analysis'. + */ + val PossibleTypes: String = "POSSIBLE_TYPES" + + /** The path to the root directory of the source/binary this CPG is generated from. */ + val Root: String = "ROOT" + + /** ID from a different context, e.g. if the graph was imported from a different format, we can use this to preserve + * the link to the original + */ + val SecondaryId: String = "SECONDARY_ID" + + /** The method signature encodes the types of parameters in a string. The string SHOULD be human readable and suitable + * for differentiating methods with different parameter types sufficiently to allow for resolving of function + * overloading. The present specification does not enforce a strict format for the signature, that is, it can be + * chosen by the frontend implementor to fit the source language. + */ + val Signature: String = "SIGNATURE" + + /** The static type decl of a TYPE. This property is matched against the FULL_NAME of TYPE_DECL nodes. It is required + * to have exactly one TYPE_DECL for each different TYPE_DECL_FULL_NAME + */ + val TypeDeclFullName: String = "TYPE_DECL_FULL_NAME" + + /** This field contains the fully-qualified static type name of the program construct represented by a node. It is the + * name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot + * be determined, this field should be set to the empty string. + */ + val TypeFullName: String = "TYPE_FULL_NAME" + + /** This property denotes a string value as used in a key-value pair. */ + val Value: String = "VALUE" + + /** This edge property represents the variable propagated by a reaching definition edge. */ + val Variable: String = "VARIABLE" + + /** A version, given as a string. Used, for example, in the META_DATA node to indicate which version of the CPG spec + * this CPG conforms to + */ + val Version: String = "VERSION" + + /** Contained node */ + val Anynode: String = "AnyNode" + + /** Contained node */ + val KeyValuePair: String = "KEY_VALUE_PAIR" + + /** Contained node */ + val Tag: String = "TAG" + + val All: Set[String] = new HashSet[String]( + Seq( + AliasTypeFullName, + ArgumentIndex, + ArgumentName, + AstParentFullName, + AstParentType, + CanonicalName, + ClosureBindingId, + ClosureOriginalName, + Code, + ColumnNumber, + ColumnNumberEnd, + ContainedRef, + Content, + ControlStructureType, + DependencyGroupId, + DispatchType, + DynamicTypeHintFullName, + EvaluationStrategy, + EvidenceDescription, + ExplicitAs, + Filename, + FullName, + GenericSignature, + Hash, + ImportedAs, + ImportedEntity, + Index, + InheritsFromTypeFullName, + IsExplicit, + IsExternal, + IsVariadic, + IsWildcard, + Key, + Language, + LineNumber, + LineNumberEnd, + MethodFullName, + ModifierType, + Name, + Offset, + OffsetEnd, + Order, + Overlays, + ParserTypeName, + PossibleTypes, + Root, + SecondaryId, + Signature, + TypeDeclFullName, + TypeFullName, + Value, + Variable, + Version, + Anynode, + KeyValuePair, + Anynode, + Tag + ).asJava + ) +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala index 267822d8f..edefe33e2 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala @@ -30,123 +30,20 @@ trait AnnotationBase extends AbstractNode with ExpressionBase with StaticType[An object Annotation { val Label = "ANNOTATION" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = "FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = flatgraph.SinglePropertyKey[String](kind = 21, name = "FULL_NAME", default = "") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val FullName = "" - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - FullName + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class Annotation(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 0.toShort, seq_4762) with AnnotationBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala index a6fc7eda1..2cdec3470 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala @@ -29,112 +29,19 @@ trait AnnotationLiteralBase extends AbstractNode with ExpressionBase with Static object AnnotationLiteral { val Label = "ANNOTATION_LITERAL" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class AnnotationLiteral(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 1.toShort, seq_4762) with AnnotationLiteralBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala index 211da8109..acd8e97a1 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala @@ -26,76 +26,16 @@ trait AnnotationParameterBase extends AbstractNode with AstNodeBase with StaticT object AnnotationParameter { val Label = "ANNOTATION_PARAMETER" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class AnnotationParameter(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 2.toShort, seq_4762) with AnnotationParameterBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala index 0e52e79e7..cea69a30b 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala @@ -29,76 +29,16 @@ trait AnnotationParameterAssignBase object AnnotationParameterAssign { val Label = "ANNOTATION_PARAMETER_ASSIGN" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class AnnotationParameterAssign(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 3.toShort, seq_4762) with AnnotationParameterAssignBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala index cd8328b3d..98ed46e61 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala @@ -28,105 +28,18 @@ trait ArrayInitializerBase extends AbstractNode with ExpressionBase with StaticT object ArrayInitializer { val Label = "ARRAY_INITIALIZER" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Order = -1: Int - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class ArrayInitializer(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 4.toShort, seq_4762) with ArrayInitializerBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/BaseTypes.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/BaseTypes.scala index a3b8a3342..967649cb5 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/BaseTypes.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/BaseTypes.scala @@ -16,13 +16,6 @@ trait AstNodeBase extends AbstractNode with StaticType[AstNodeEMT] // implementing nodes: ANNOTATION, ANNOTATION_LITERAL, ANNOTATION_PARAMETER, ANNOTATION_PARAMETER_ASSIGN, ARRAY_INITIALIZER, BLOCK, CALL, COMMENT, CONTROL_STRUCTURE, FIELD_IDENTIFIER, FILE, IDENTIFIER, IMPORT, JUMP_LABEL, JUMP_TARGET, LITERAL, LOCAL, MEMBER, METHOD, METHOD_PARAMETER_IN, METHOD_PARAMETER_OUT, METHOD_REF, METHOD_RETURN, MODIFIER, NAMESPACE, NAMESPACE_BLOCK, RETURN, TEMPLATE_DOM, TYPE_ARGUMENT, TYPE_DECL, TYPE_PARAMETER, TYPE_REF, UNKNOWN trait AstNode extends StoredNode with AstNodeBase with StaticType[AstNodeEMT] -object AstNode { - object PropertyDefaults { - val Code = "" - val Order = -1: Int - } -} - trait AstNodeNew extends NewNode with AstNodeBase with StaticType[AstNodeEMT] { def code: String def code_=(value: String): Unit @@ -57,13 +50,6 @@ trait CallReprBase extends AbstractNode with CfgNodeBase with StaticType[CallRep // implementing nodes: CALL trait CallRepr extends StoredNode with CallReprBase with CfgNode with StaticType[CallReprEMT] -object CallRepr { - object PropertyDefaults { - val Name = "" - val Signature = "" - } -} - trait CallReprNew extends NewNode with CallReprBase with CfgNodeNew with StaticType[CallReprEMT] { def name: String def name_=(value: String): Unit @@ -82,10 +68,6 @@ trait CfgNodeBase extends AbstractNode with AstNodeBase with StaticType[CfgNodeE // implementing nodes: ANNOTATION, ANNOTATION_LITERAL, ARRAY_INITIALIZER, BLOCK, CALL, CONTROL_STRUCTURE, FIELD_IDENTIFIER, IDENTIFIER, JUMP_TARGET, LITERAL, METHOD, METHOD_PARAMETER_IN, METHOD_PARAMETER_OUT, METHOD_REF, METHOD_RETURN, RETURN, TEMPLATE_DOM, TYPE_REF, UNKNOWN trait CfgNode extends StoredNode with CfgNodeBase with AstNode with StaticType[CfgNodeEMT] -object CfgNode { - object PropertyDefaults {} -} - trait CfgNodeNew extends NewNode with CfgNodeBase with AstNodeNew with StaticType[CfgNodeEMT] {} trait DeclarationEMT extends AnyRef with HasNameEMT @@ -97,12 +79,6 @@ trait DeclarationBase extends AbstractNode with StaticType[DeclarationEMT] // implementing nodes: LOCAL, MEMBER, METHOD, METHOD_PARAMETER_IN, METHOD_PARAMETER_OUT trait Declaration extends StoredNode with DeclarationBase with StaticType[DeclarationEMT] -object Declaration { - object PropertyDefaults { - val Name = "" - } -} - trait DeclarationNew extends NewNode with DeclarationBase with StaticType[DeclarationEMT] { def name: String def name_=(value: String): Unit @@ -118,12 +94,6 @@ trait ExpressionBase extends AbstractNode with CfgNodeBase with StaticType[Expre // implementing nodes: ANNOTATION, ANNOTATION_LITERAL, ARRAY_INITIALIZER, BLOCK, CALL, CONTROL_STRUCTURE, FIELD_IDENTIFIER, IDENTIFIER, LITERAL, METHOD_REF, RETURN, TEMPLATE_DOM, TYPE_REF, UNKNOWN trait Expression extends StoredNode with ExpressionBase with CfgNode with StaticType[ExpressionEMT] -object Expression { - object PropertyDefaults { - val ArgumentIndex = -1: Int - } -} - trait ExpressionNew extends NewNode with ExpressionBase with AstNodeNew with CfgNodeNew with StaticType[ExpressionEMT] { def argumentIndex: Int def argumentIndex_=(value: Int): Unit diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala index 85ab8630e..38086663f 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala @@ -23,47 +23,13 @@ trait BindingBase extends AbstractNode with StaticType[BindingEMT] { object Binding { val Label = "BINDING" - object PropertyNames { - - /** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node - * for each METHOD_FULL_NAME - */ - val MethodFullName = "METHOD_FULL_NAME" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** The method signature encodes the types of parameters in a string. The string SHOULD be human readable and - * suitable for differentiating methods with different parameter types sufficiently to allow for resolving of - * function overloading. The present specification does not enforce a strict format for the signature, that is, it - * can be chosen by the frontend implementor to fit the source language. - */ - val Signature = "SIGNATURE" - } - object Properties { - - /** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node - * for each METHOD_FULL_NAME - */ - val MethodFullName = flatgraph.SinglePropertyKey[String](kind = 36, name = "METHOD_FULL_NAME", default = "") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** The method signature encodes the types of parameters in a string. The string SHOULD be human readable and - * suitable for differentiating methods with different parameter types sufficiently to allow for resolving of - * function overloading. The present specification does not enforce a strict format for the signature, that is, it - * can be chosen by the frontend implementor to fit the source language. - */ - val Signature = flatgraph.SinglePropertyKey[String](kind = 46, name = "SIGNATURE", default = "") - } - object PropertyDefaults { - val MethodFullName = "" - val Name = "" - val Signature = "" - } } +/** Node properties: + * - MethodFullName + * - Name + * - Signature + */ class Binding(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 5.toShort, seq_4762) with BindingBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala index 8236ecf26..17eeabc16 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala @@ -38,134 +38,21 @@ trait BlockBase extends AbstractNode with ExpressionBase with StaticType[BlockEM object Block { val Label = "BLOCK" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class Block(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 6.toShort, seq_4762) with BlockBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala index 853e40e28..61020831b 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala @@ -45,182 +45,25 @@ trait CallBase extends AbstractNode with CallReprBase with ExpressionBase with S object Call { val Label = "CALL" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This field holds the dispatch type of a call, which is either `STATIC_DISPATCH` or `DYNAMIC_DISPATCH`. For - * statically dispatched method calls, the call target is known at compile time while for dynamically dispatched - * calls, it can only be determined at runtime as it may depend on the type of an object (as is the case for - * virtual method calls) or calculation of an offset. - */ - val DispatchType = "DISPATCH_TYPE" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node - * for each METHOD_FULL_NAME - */ - val MethodFullName = "METHOD_FULL_NAME" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** The method signature encodes the types of parameters in a string. The string SHOULD be human readable and - * suitable for differentiating methods with different parameter types sufficiently to allow for resolving of - * function overloading. The present specification does not enforce a strict format for the signature, that is, it - * can be chosen by the frontend implementor to fit the source language. - */ - val Signature = "SIGNATURE" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This field holds the dispatch type of a call, which is either `STATIC_DISPATCH` or `DYNAMIC_DISPATCH`. For - * statically dispatched method calls, the call target is known at compile time while for dynamically dispatched - * calls, it can only be determined at runtime as it may depend on the type of an object (as is the case for - * virtual method calls) or calculation of an offset. - */ - val DispatchType = flatgraph.SinglePropertyKey[String](kind = 15, name = "DISPATCH_TYPE", default = "") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node - * for each METHOD_FULL_NAME - */ - val MethodFullName = flatgraph.SinglePropertyKey[String](kind = 36, name = "METHOD_FULL_NAME", default = "") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** The method signature encodes the types of parameters in a string. The string SHOULD be human readable and - * suitable for differentiating methods with different parameter types sufficiently to allow for resolving of - * function overloading. The present specification does not enforce a strict format for the signature, that is, it - * can be chosen by the frontend implementor to fit the source language. - */ - val Signature = flatgraph.SinglePropertyKey[String](kind = 46, name = "SIGNATURE", default = "") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val DispatchType = "" - val MethodFullName = "" - val Name = "" - val Order = -1: Int - val Signature = "" - val TypeFullName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - DispatchType + * - DynamicTypeHintFullName + * - LineNumber + * - MethodFullName + * - Name + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - Signature + * - TypeFullName + */ class Call(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 7.toShort, seq_4762) with CallBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala index c392290f5..8fd0672ee 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala @@ -27,52 +27,13 @@ trait ClosureBindingBase extends AbstractNode with StaticType[ClosureBindingEMT] object ClosureBinding { val Label = "CLOSURE_BINDING" - object PropertyNames { - - /** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with - * the corresponding CLOSURE_BINDING nodes - */ - val ClosureBindingId = "CLOSURE_BINDING_ID" - - /** Deprecated. Create an explict REF edge instead. Formerly the original name of the (potentially mangled) captured - * variable - */ - val ClosureOriginalName = "CLOSURE_ORIGINAL_NAME" - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = "EVALUATION_STRATEGY" - } - object Properties { - - /** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with - * the corresponding CLOSURE_BINDING nodes - */ - val ClosureBindingId = flatgraph.OptionalPropertyKey[String](kind = 6, name = "CLOSURE_BINDING_ID") - - /** Deprecated. Create an explict REF edge instead. Formerly the original name of the (potentially mangled) captured - * variable - */ - val ClosureOriginalName = flatgraph.OptionalPropertyKey[String](kind = 7, name = "CLOSURE_ORIGINAL_NAME") - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = - flatgraph.SinglePropertyKey[String](kind = 17, name = "EVALUATION_STRATEGY", default = "") - } - object PropertyDefaults { - val EvaluationStrategy = "" - } } +/** Node properties: + * - ClosureBindingId + * - ClosureOriginalName + * - EvaluationStrategy + */ class ClosureBinding(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 8.toShort, seq_4762) with ClosureBindingBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala index 1a7f6c1ad..85f9b6719 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala @@ -27,91 +27,17 @@ trait CommentBase extends AbstractNode with AstNodeBase with StaticType[CommentE object Comment { val Label = "COMMENT" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = "FILENAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = flatgraph.SinglePropertyKey[String](kind = 20, name = "FILENAME", default = "") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Filename = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - Filename + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class Comment(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 9.toShort, seq_4762) with CommentBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala index e28d014df..b76493623 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala @@ -22,32 +22,12 @@ trait ConfigFileBase extends AbstractNode with StaticType[ConfigFileEMT] { object ConfigFile { val Label = "CONFIG_FILE" - object PropertyNames { - - /** Certain files, e.g., configuration files, may be included in the CPG as-is. For such files, the `CONTENT` field - * contains the files content. - */ - val Content = "CONTENT" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - } - object Properties { - - /** Certain files, e.g., configuration files, may be included in the CPG as-is. For such files, the `CONTENT` field - * contains the files content. - */ - val Content = flatgraph.SinglePropertyKey[String](kind = 12, name = "CONTENT", default = "") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - } - object PropertyDefaults { - val Content = "" - val Name = "" - } } +/** Node properties: + * - Content + * - Name + */ class ConfigFile(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 10.toShort, seq_4762) with ConfigFileBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala index 43843179c..9a0556002 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala @@ -30,126 +30,20 @@ trait ControlStructureBase extends AbstractNode with ExpressionBase with StaticT object ControlStructure { val Label = "CONTROL_STRUCTURE" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** The `CONTROL_STRUCTURE_TYPE` field indicates which kind of control structure a `CONTROL_STRUCTURE` node - * represents. The available types are the following: BREAK, CONTINUE, DO, WHILE, FOR, GOTO, IF, ELSE, TRY, THROW - * and SWITCH. - */ - val ControlStructureType = "CONTROL_STRUCTURE_TYPE" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** AST node type name emitted by parser. */ - val ParserTypeName = "PARSER_TYPE_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** The `CONTROL_STRUCTURE_TYPE` field indicates which kind of control structure a `CONTROL_STRUCTURE` node - * represents. The available types are the following: BREAK, CONTINUE, DO, WHILE, FOR, GOTO, IF, ELSE, TRY, THROW - * and SWITCH. - */ - val ControlStructureType = - flatgraph.SinglePropertyKey[String](kind = 13, name = "CONTROL_STRUCTURE_TYPE", default = "") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** AST node type name emitted by parser. */ - val ParserTypeName = flatgraph.SinglePropertyKey[String](kind = 43, name = "PARSER_TYPE_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val ControlStructureType = "" - val Order = -1: Int - val ParserTypeName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - ControlStructureType + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + * - ParserTypeName + */ class ControlStructure(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 11.toShort, seq_4762) with ControlStructureBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala index c34f5495b..53494fc4f 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala @@ -23,38 +23,13 @@ trait DependencyBase extends AbstractNode with StaticType[DependencyEMT] { object Dependency { val Label = "DEPENDENCY" - object PropertyNames { - - /** The group ID for a dependency */ - val DependencyGroupId = "DEPENDENCY_GROUP_ID" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** A version, given as a string. Used, for example, in the META_DATA node to indicate which version of the CPG spec - * this CPG conforms to - */ - val Version = "VERSION" - } - object Properties { - - /** The group ID for a dependency */ - val DependencyGroupId = flatgraph.OptionalPropertyKey[String](kind = 14, name = "DEPENDENCY_GROUP_ID") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** A version, given as a string. Used, for example, in the META_DATA node to indicate which version of the CPG spec - * this CPG conforms to - */ - val Version = flatgraph.SinglePropertyKey[String](kind = 50, name = "VERSION", default = "") - } - object PropertyDefaults { - val Name = "" - val Version = "" - } } +/** Node properties: + * - DependencyGroupId + * - Name + * - Version + */ class Dependency(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 12.toShort, seq_4762) with DependencyBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala index cb43f8510..44f83af2d 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala @@ -29,122 +29,19 @@ trait FieldIdentifierBase extends AbstractNode with ExpressionBase with StaticTy object FieldIdentifier { val Label = "FIELD_IDENTIFIER" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the canonical name of a `FIELD_IDENTIFIER`. It is typically identical to the CODE field, but - * canonicalized according to source language semantics. Human readable names are preferable. `FIELD_IDENTIFIER` - * nodes must share identical `CANONICAL_NAME` if and only if they alias, e.g., in C-style unions (if the aliasing - * relationship is unknown or there are partial overlaps, then one must make a reasonable guess, and trade off - * between false negatives and false positives). - */ - val CanonicalName = "CANONICAL_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the canonical name of a `FIELD_IDENTIFIER`. It is typically identical to the CODE field, but - * canonicalized according to source language semantics. Human readable names are preferable. `FIELD_IDENTIFIER` - * nodes must share identical `CANONICAL_NAME` if and only if they alias, e.g., in C-style unions (if the aliasing - * relationship is unknown or there are partial overlaps, then one must make a reasonable guess, and trade off - * between false negatives and false positives). - */ - val CanonicalName = flatgraph.SinglePropertyKey[String](kind = 5, name = "CANONICAL_NAME", default = "") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val CanonicalName = "" - val Code = "" - val Order = -1: Int - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - CanonicalName + * - Code + * - ColumnNumber + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class FieldIdentifier(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 13.toShort, seq_4762) with FieldIdentifierBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala index c1017cb89..6c1fc7c69 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala @@ -29,108 +29,19 @@ trait FileBase extends AbstractNode with AstNodeBase with StaticType[FileEMT] { object File { val Label = "FILE" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Certain files, e.g., configuration files, may be included in the CPG as-is. For such files, the `CONTENT` field - * contains the files content. - */ - val Content = "CONTENT" - - /** This property contains a hash value in the form of a string. Hashes can be used to summarize data, e.g., to - * summarize the contents of source files or sub graphs. Such summaries are useful to determine whether code has - * already been analyzed in incremental analysis pipelines. This property is optional to allow its calculation to - * be deferred or skipped if the hash is not needed. - */ - val Hash = "HASH" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Certain files, e.g., configuration files, may be included in the CPG as-is. For such files, the `CONTENT` field - * contains the files content. - */ - val Content = flatgraph.SinglePropertyKey[String](kind = 12, name = "CONTENT", default = "") - - /** This property contains a hash value in the form of a string. Hashes can be used to summarize data, e.g., to - * summarize the contents of source files or sub graphs. Such summaries are useful to determine whether code has - * already been analyzed in incremental analysis pipelines. This property is optional to allow its calculation to - * be deferred or skipped if the hash is not needed. - */ - val Hash = flatgraph.OptionalPropertyKey[String](kind = 23, name = "HASH") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Content = "" - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - Content + * - Hash + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class File(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 14.toShort, seq_4762) with FileBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala index 7d81e4164..57a667891 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala @@ -25,25 +25,13 @@ trait FindingBase extends AbstractNode with StaticType[FindingEMT] { object Finding { val Label = "FINDING" - object PropertyNames { - - /** Optional description for nodes in evidence. Used to give a hint about the kind of evidence provided by a node. - * The evidence description and evidence nodes are associated by index. - */ - val EvidenceDescription = "EVIDENCE_DESCRIPTION" - val Evidence = "evidence" - val Keyvaluepairs = "keyValuePairs" - } - object Properties { - - /** Optional description for nodes in evidence. Used to give a hint about the kind of evidence provided by a node. - * The evidence description and evidence nodes are associated by index. - */ - val EvidenceDescription = flatgraph.MultiPropertyKey[String](kind = 18, name = "EVIDENCE_DESCRIPTION") - } - object PropertyDefaults {} } +/** Node properties: + * - EvidenceDescription + * - Anynode + * - KeyValuePair + */ class Finding(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 15.toShort, seq_4762) with FindingBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala index 32b278d38..4426edff6 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala @@ -40,141 +40,22 @@ trait IdentifierBase extends AbstractNode with ExpressionBase with StaticType[Id object Identifier { val Label = "IDENTIFIER" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Name = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class Identifier(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 16.toShort, seq_4762) with IdentifierBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala index 4ba62a28b..98659561d 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala @@ -38,130 +38,21 @@ trait ImportBase extends AbstractNode with AstNodeBase with StaticType[ImportEMT object Import { val Label = "IMPORT" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Specifies whether the IMPORTED_AS property was explicitly present in the code. For languages like Java which do - * not allow a renaming during import this is always false. For e.g. Kotlin it depends on the existence of the "as" - * keyword. - */ - val ExplicitAs = "EXPLICIT_AS" - - /** The identifier under which the import can be accessed in the importing context. For a Java import this is always - * identical to the class name. But e.g. for a Kotlin import like "import java.nio.ByteBuffer as BBuffer" this - * would be "BBuffer". This property is ignored if IS_WILDCARD is true. - */ - val ImportedAs = "IMPORTED_AS" - - /** The identifying string of the imported entity. For a Java import like "import java.nio.ByteBuffer;" this would - * be "java.nio.ByteBuffer". - */ - val ImportedEntity = "IMPORTED_ENTITY" - - /** Specifies whether this is an explicit import. Most languages have implicit default imports of some standard - * library elements and this flag is used to distinguish those from explicit imports found in the code base. - */ - val IsExplicit = "IS_EXPLICIT" - - /** Specifies whether this is a wildcard import. For a Java import like "import java.nio.*;" IS_WILDCARD would be - * "true" and IMPORTED_ENTITY would be "java.nio". For wildcard imports the IMPORTED_AS property is ignored. - */ - val IsWildcard = "IS_WILDCARD" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Specifies whether the IMPORTED_AS property was explicitly present in the code. For languages like Java which do - * not allow a renaming during import this is always false. For e.g. Kotlin it depends on the existence of the "as" - * keyword. - */ - val ExplicitAs = flatgraph.OptionalPropertyKey[Boolean](kind = 19, name = "EXPLICIT_AS") - - /** The identifier under which the import can be accessed in the importing context. For a Java import this is always - * identical to the class name. But e.g. for a Kotlin import like "import java.nio.ByteBuffer as BBuffer" this - * would be "BBuffer". This property is ignored if IS_WILDCARD is true. - */ - val ImportedAs = flatgraph.OptionalPropertyKey[String](kind = 24, name = "IMPORTED_AS") - - /** The identifying string of the imported entity. For a Java import like "import java.nio.ByteBuffer;" this would - * be "java.nio.ByteBuffer". - */ - val ImportedEntity = flatgraph.OptionalPropertyKey[String](kind = 25, name = "IMPORTED_ENTITY") - - /** Specifies whether this is an explicit import. Most languages have implicit default imports of some standard - * library elements and this flag is used to distinguish those from explicit imports found in the code base. - */ - val IsExplicit = flatgraph.OptionalPropertyKey[Boolean](kind = 28, name = "IS_EXPLICIT") - - /** Specifies whether this is a wildcard import. For a Java import like "import java.nio.*;" IS_WILDCARD would be - * "true" and IMPORTED_ENTITY would be "java.nio". For wildcard imports the IMPORTED_AS property is ignored. - */ - val IsWildcard = flatgraph.OptionalPropertyKey[Boolean](kind = 31, name = "IS_WILDCARD") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - ExplicitAs + * - ImportedAs + * - ImportedEntity + * - IsExplicit + * - IsWildcard + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class Import(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 17.toShort, seq_4762) with ImportBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala index e93013927..8259cf3d1 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala @@ -28,90 +28,18 @@ trait JumpLabelBase extends AbstractNode with AstNodeBase with StaticType[JumpLa object JumpLabel { val Label = "JUMP_LABEL" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** AST node type name emitted by parser. */ - val ParserTypeName = "PARSER_TYPE_NAME" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** AST node type name emitted by parser. */ - val ParserTypeName = flatgraph.SinglePropertyKey[String](kind = 43, name = "PARSER_TYPE_NAME", default = "") - } - object PropertyDefaults { - val Code = "" - val Name = "" - val Order = -1: Int - val ParserTypeName = "" - } } +/** Node properties: + * - Code + * - ColumnNumber + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + * - ParserTypeName + */ class JumpLabel(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 18.toShort, seq_4762) with JumpLabelBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala index cad564f22..c5b732a10 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala @@ -29,109 +29,19 @@ trait JumpTargetBase extends AbstractNode with CfgNodeBase with StaticType[JumpT object JumpTarget { val Label = "JUMP_TARGET" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** AST node type name emitted by parser. */ - val ParserTypeName = "PARSER_TYPE_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** AST node type name emitted by parser. */ - val ParserTypeName = flatgraph.SinglePropertyKey[String](kind = 43, name = "PARSER_TYPE_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Name = "" - val Order = -1: Int - val ParserTypeName = "" - } } +/** Node properties: + * - ArgumentIndex + * - Code + * - ColumnNumber + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + * - ParserTypeName + */ class JumpTarget(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 19.toShort, seq_4762) with JumpTargetBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala index c5b022e1d..2e164a014 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala @@ -22,28 +22,12 @@ trait KeyValuePairBase extends AbstractNode with StaticType[KeyValuePairEMT] { object KeyValuePair { val Label = "KEY_VALUE_PAIR" - object PropertyNames { - - /** This property denotes a key of a key-value pair. */ - val Key = "KEY" - - /** This property denotes a string value as used in a key-value pair. */ - val Value = "VALUE" - } - object Properties { - - /** This property denotes a key of a key-value pair. */ - val Key = flatgraph.SinglePropertyKey[String](kind = 32, name = "KEY", default = "") - - /** This property denotes a string value as used in a key-value pair. */ - val Value = flatgraph.SinglePropertyKey[String](kind = 49, name = "VALUE", default = "") - } - object PropertyDefaults { - val Key = "" - val Value = "" - } } +/** Node properties: + * - Key + * - Value + */ class KeyValuePair(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 20.toShort, seq_4762) with KeyValuePairBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala index 95a6ff7cd..20c408d85 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala @@ -38,134 +38,21 @@ trait LiteralBase extends AbstractNode with ExpressionBase with StaticType[Liter object Literal { val Label = "LITERAL" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class Literal(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 21.toShort, seq_4762) with LiteralBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala index fbdcec47f..8538f6033 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala @@ -42,136 +42,22 @@ trait LocalBase extends AbstractNode with AstNodeBase with DeclarationBase with object Local { val Label = "LOCAL" - object PropertyNames { - - /** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with - * the corresponding CLOSURE_BINDING nodes - */ - val ClosureBindingId = "CLOSURE_BINDING_ID" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = "GENERIC_SIGNATURE" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with - * the corresponding CLOSURE_BINDING nodes - */ - val ClosureBindingId = flatgraph.OptionalPropertyKey[String](kind = 6, name = "CLOSURE_BINDING_ID") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = - flatgraph.SinglePropertyKey[String](kind = 22, name = "GENERIC_SIGNATURE", default = "") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val Code = "" - val GenericSignature = "" - val Name = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - ClosureBindingId + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - GenericSignature + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class Local(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 22.toShort, seq_4762) with LocalBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala index b6bc9b0d3..d13a24cf6 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala @@ -44,145 +44,23 @@ trait MemberBase extends AbstractNode with AstNodeBase with DeclarationBase with object Member { val Label = "MEMBER" - object PropertyNames { - - /** This field holds the FULL_NAME of the AST parent of an entity. */ - val AstParentFullName = "AST_PARENT_FULL_NAME" - - /** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all - * possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. - */ - val AstParentType = "AST_PARENT_TYPE" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = "GENERIC_SIGNATURE" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** This field holds the FULL_NAME of the AST parent of an entity. */ - val AstParentFullName = - flatgraph.SinglePropertyKey[String](kind = 3, name = "AST_PARENT_FULL_NAME", default = "") - - /** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all - * possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. - */ - val AstParentType = flatgraph.SinglePropertyKey[String](kind = 4, name = "AST_PARENT_TYPE", default = "") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = - flatgraph.SinglePropertyKey[String](kind = 22, name = "GENERIC_SIGNATURE", default = "") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val AstParentFullName = "" - val AstParentType = "" - val Code = "" - val GenericSignature = "" - val Name = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - AstParentFullName + * - AstParentType + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - GenericSignature + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class Member(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 23.toShort, seq_4762) with MemberBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala index 9e69ef504..9816571fa 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala @@ -31,71 +31,15 @@ trait MetaDataBase extends AbstractNode with StaticType[MetaDataEMT] { object MetaData { val Label = "META_DATA" - object PropertyNames { - - /** This property contains a hash value in the form of a string. Hashes can be used to summarize data, e.g., to - * summarize the contents of source files or sub graphs. Such summaries are useful to determine whether code has - * already been analyzed in incremental analysis pipelines. This property is optional to allow its calculation to - * be deferred or skipped if the hash is not needed. - */ - val Hash = "HASH" - - /** This field indicates which CPG language frontend generated the CPG. Frontend developers may freely choose a - * value that describes their frontend so long as it is not used by an existing frontend. Reserved values are to - * date: C, LLVM, GHIDRA, PHP. - */ - val Language = "LANGUAGE" - - /** The field contains the names of the overlays applied to this CPG, in order of their application. Names are - * free-form strings, that is, this specification does not dictate them but rather requires tool producers and - * consumers to communicate them between each other. - */ - val Overlays = "OVERLAYS" - - /** The path to the root directory of the source/binary this CPG is generated from. */ - val Root = "ROOT" - - /** A version, given as a string. Used, for example, in the META_DATA node to indicate which version of the CPG spec - * this CPG conforms to - */ - val Version = "VERSION" - } - object Properties { - - /** This property contains a hash value in the form of a string. Hashes can be used to summarize data, e.g., to - * summarize the contents of source files or sub graphs. Such summaries are useful to determine whether code has - * already been analyzed in incremental analysis pipelines. This property is optional to allow its calculation to - * be deferred or skipped if the hash is not needed. - */ - val Hash = flatgraph.OptionalPropertyKey[String](kind = 23, name = "HASH") - - /** This field indicates which CPG language frontend generated the CPG. Frontend developers may freely choose a - * value that describes their frontend so long as it is not used by an existing frontend. Reserved values are to - * date: C, LLVM, GHIDRA, PHP. - */ - val Language = flatgraph.SinglePropertyKey[String](kind = 33, name = "LANGUAGE", default = "") - - /** The field contains the names of the overlays applied to this CPG, in order of their application. Names are - * free-form strings, that is, this specification does not dictate them but rather requires tool producers and - * consumers to communicate them between each other. - */ - val Overlays = flatgraph.MultiPropertyKey[String](kind = 42, name = "OVERLAYS") - - /** The path to the root directory of the source/binary this CPG is generated from. */ - val Root = flatgraph.SinglePropertyKey[String](kind = 45, name = "ROOT", default = "") - - /** A version, given as a string. Used, for example, in the META_DATA node to indicate which version of the CPG spec - * this CPG conforms to - */ - val Version = flatgraph.SinglePropertyKey[String](kind = 50, name = "VERSION", default = "") - } - object PropertyDefaults { - val Language = "" - val Root = "" - val Version = "" - } } +/** Node properties: + * - Hash + * - Language + * - Overlays + * - Root + * - Version + */ class MetaData(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 24.toShort, seq_4762) with MetaDataBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala index 6f783ead1..9c3ac8a58 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala @@ -50,198 +50,27 @@ trait MethodBase extends AbstractNode with CfgNodeBase with DeclarationBase with object Method { val Label = "METHOD" - object PropertyNames { - - /** This field holds the FULL_NAME of the AST parent of an entity. */ - val AstParentFullName = "AST_PARENT_FULL_NAME" - - /** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all - * possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. - */ - val AstParentType = "AST_PARENT_TYPE" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional fields provides the column number at which the program construct represented by the node ends. - */ - val ColumnNumberEnd = "COLUMN_NUMBER_END" - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = "FILENAME" - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = "FULL_NAME" - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = "GENERIC_SIGNATURE" - - /** This property contains a hash value in the form of a string. Hashes can be used to summarize data, e.g., to - * summarize the contents of source files or sub graphs. Such summaries are useful to determine whether code has - * already been analyzed in incremental analysis pipelines. This property is optional to allow its calculation to - * be deferred or skipped if the hash is not needed. - */ - val Hash = "HASH" - - /** Indicates that the construct (METHOD or TYPE_DECL) is external, that is, it is referenced but not defined in the - * code (applies both to insular parsing and to library functions where we have header files only) - */ - val IsExternal = "IS_EXTERNAL" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** This optional fields provides the line number at which the program construct represented by the node ends. - */ - val LineNumberEnd = "LINE_NUMBER_END" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** The method signature encodes the types of parameters in a string. The string SHOULD be human readable and - * suitable for differentiating methods with different parameter types sufficiently to allow for resolving of - * function overloading. The present specification does not enforce a strict format for the signature, that is, it - * can be chosen by the frontend implementor to fit the source language. - */ - val Signature = "SIGNATURE" - } - object Properties { - - /** This field holds the FULL_NAME of the AST parent of an entity. */ - val AstParentFullName = - flatgraph.SinglePropertyKey[String](kind = 3, name = "AST_PARENT_FULL_NAME", default = "") - - /** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all - * possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. - */ - val AstParentType = flatgraph.SinglePropertyKey[String](kind = 4, name = "AST_PARENT_TYPE", default = "") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional fields provides the column number at which the program construct represented by the node ends. - */ - val ColumnNumberEnd = flatgraph.OptionalPropertyKey[Int](kind = 10, name = "COLUMN_NUMBER_END") - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = flatgraph.SinglePropertyKey[String](kind = 20, name = "FILENAME", default = "") - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = flatgraph.SinglePropertyKey[String](kind = 21, name = "FULL_NAME", default = "") - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = - flatgraph.SinglePropertyKey[String](kind = 22, name = "GENERIC_SIGNATURE", default = "") - - /** This property contains a hash value in the form of a string. Hashes can be used to summarize data, e.g., to - * summarize the contents of source files or sub graphs. Such summaries are useful to determine whether code has - * already been analyzed in incremental analysis pipelines. This property is optional to allow its calculation to - * be deferred or skipped if the hash is not needed. - */ - val Hash = flatgraph.OptionalPropertyKey[String](kind = 23, name = "HASH") - - /** Indicates that the construct (METHOD or TYPE_DECL) is external, that is, it is referenced but not defined in the - * code (applies both to insular parsing and to library functions where we have header files only) - */ - val IsExternal = flatgraph.SinglePropertyKey[Boolean](kind = 29, name = "IS_EXTERNAL", default = false) - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** This optional fields provides the line number at which the program construct represented by the node ends. - */ - val LineNumberEnd = flatgraph.OptionalPropertyKey[Int](kind = 35, name = "LINE_NUMBER_END") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** The method signature encodes the types of parameters in a string. The string SHOULD be human readable and - * suitable for differentiating methods with different parameter types sufficiently to allow for resolving of - * function overloading. The present specification does not enforce a strict format for the signature, that is, it - * can be chosen by the frontend implementor to fit the source language. - */ - val Signature = flatgraph.SinglePropertyKey[String](kind = 46, name = "SIGNATURE", default = "") - } - object PropertyDefaults { - val AstParentFullName = "" - val AstParentType = "" - val Code = "" - val Filename = "" - val FullName = "" - val GenericSignature = "" - val IsExternal = false - val Name = "" - val Order = -1: Int - val Signature = "" - } } +/** Node properties: + * - AstParentFullName + * - AstParentType + * - Code + * - ColumnNumber + * - ColumnNumberEnd + * - Filename + * - FullName + * - GenericSignature + * - Hash + * - IsExternal + * - LineNumber + * - LineNumberEnd + * - Name + * - Offset + * - OffsetEnd + * - Order + * - Signature + */ class Method(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 25.toShort, seq_4762) with MethodBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala index 430c93204..65b153447 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala @@ -50,162 +50,24 @@ trait MethodParameterInBase object MethodParameterIn { val Label = "METHOD_PARAMETER_IN" - object PropertyNames { - - /** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with - * the corresponding CLOSURE_BINDING nodes - */ - val ClosureBindingId = "CLOSURE_BINDING_ID" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = "EVALUATION_STRATEGY" - - /** Specifies an index, e.g., for a parameter or argument. Explicit parameters are numbered from 1 to N, while index - * 0 is reserved for implicit self / this parameter. - */ - val Index = "INDEX" - - /** Specifies whether a parameter is the variadic argument handling parameter of a variadic method. Only one - * parameter of a method is allowed to have this property set to true. - */ - val IsVariadic = "IS_VARIADIC" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** Identifier which uniquely describes a CLOSURE_BINDING. This property is used to match captured LOCAL nodes with - * the corresponding CLOSURE_BINDING nodes - */ - val ClosureBindingId = flatgraph.OptionalPropertyKey[String](kind = 6, name = "CLOSURE_BINDING_ID") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = - flatgraph.SinglePropertyKey[String](kind = 17, name = "EVALUATION_STRATEGY", default = "") - - /** Specifies an index, e.g., for a parameter or argument. Explicit parameters are numbered from 1 to N, while index - * 0 is reserved for implicit self / this parameter. - */ - val Index = flatgraph.SinglePropertyKey[Int](kind = 26, name = "INDEX", default = -1: Int) - - /** Specifies whether a parameter is the variadic argument handling parameter of a variadic method. Only one - * parameter of a method is allowed to have this property set to true. - */ - val IsVariadic = flatgraph.SinglePropertyKey[Boolean](kind = 30, name = "IS_VARIADIC", default = false) - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val Code = "" - val EvaluationStrategy = "" - val Index = -1: Int - val IsVariadic = false - val Name = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - ClosureBindingId + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - EvaluationStrategy + * - Index + * - IsVariadic + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class MethodParameterIn(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 26.toShort, seq_4762) with MethodParameterInBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala index 25ec102e7..391f618f5 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala @@ -42,136 +42,21 @@ trait MethodParameterOutBase object MethodParameterOut { val Label = "METHOD_PARAMETER_OUT" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = "EVALUATION_STRATEGY" - - /** Specifies an index, e.g., for a parameter or argument. Explicit parameters are numbered from 1 to N, while index - * 0 is reserved for implicit self / this parameter. - */ - val Index = "INDEX" - - /** Specifies whether a parameter is the variadic argument handling parameter of a variadic method. Only one - * parameter of a method is allowed to have this property set to true. - */ - val IsVariadic = "IS_VARIADIC" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = - flatgraph.SinglePropertyKey[String](kind = 17, name = "EVALUATION_STRATEGY", default = "") - - /** Specifies an index, e.g., for a parameter or argument. Explicit parameters are numbered from 1 to N, while index - * 0 is reserved for implicit self / this parameter. - */ - val Index = flatgraph.SinglePropertyKey[Int](kind = 26, name = "INDEX", default = -1: Int) - - /** Specifies whether a parameter is the variadic argument handling parameter of a variadic method. Only one - * parameter of a method is allowed to have this property set to true. - */ - val IsVariadic = flatgraph.SinglePropertyKey[Boolean](kind = 30, name = "IS_VARIADIC", default = false) - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val Code = "" - val EvaluationStrategy = "" - val Index = -1: Int - val IsVariadic = false - val Name = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - Code + * - ColumnNumber + * - EvaluationStrategy + * - Index + * - IsVariadic + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + * - TypeFullName + */ class MethodParameterOut(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 27.toShort, seq_4762) with MethodParameterOutBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala index 975f78eb8..f94db39c5 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala @@ -40,145 +40,22 @@ trait MethodRefBase extends AbstractNode with ExpressionBase with StaticType[Met object MethodRef { val Label = "METHOD_REF" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node - * for each METHOD_FULL_NAME - */ - val MethodFullName = "METHOD_FULL_NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** The FULL_NAME of a method. Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node - * for each METHOD_FULL_NAME - */ - val MethodFullName = flatgraph.SinglePropertyKey[String](kind = 36, name = "METHOD_FULL_NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val MethodFullName = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - LineNumber + * - MethodFullName + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class MethodRef(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 28.toShort, seq_4762) with MethodRefBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala index 738128f45..b95ccd9fe 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala @@ -38,123 +38,20 @@ trait MethodReturnBase extends AbstractNode with CfgNodeBase with StaticType[Met object MethodReturn { val Label = "METHOD_RETURN" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = "EVALUATION_STRATEGY" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** For formal method input parameters, output parameters, and return parameters, this field holds the evaluation - * strategy, which is one of the following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, - * 2) `BY_VALUE` indicates that it is passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a - * pointer/reference and it is shared with the caller/callee. While a copy of the pointer is made, a copy of the - * object that it points to is not made. - */ - val EvaluationStrategy = - flatgraph.SinglePropertyKey[String](kind = 17, name = "EVALUATION_STRATEGY", default = "") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val Code = "" - val EvaluationStrategy = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - EvaluationStrategy + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class MethodReturn(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 29.toShort, seq_4762) with MethodReturnBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala index c4850fbe0..f3a10159a 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala @@ -27,87 +27,17 @@ trait ModifierBase extends AbstractNode with AstNodeBase with StaticType[Modifie object Modifier { val Label = "MODIFIER" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** The modifier type is a free-form string. The following are known modifier types: `STATIC`, `PUBLIC`, - * `PROTECTED`, `PRIVATE`, `ABSTRACT`, `NATIVE`, `CONSTRUCTOR`, `VIRTUAL`. - */ - val ModifierType = "MODIFIER_TYPE" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** The modifier type is a free-form string. The following are known modifier types: `STATIC`, `PUBLIC`, - * `PROTECTED`, `PRIVATE`, `ABSTRACT`, `NATIVE`, `CONSTRUCTOR`, `VIRTUAL`. - */ - val ModifierType = flatgraph.SinglePropertyKey[String](kind = 37, name = "MODIFIER_TYPE", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val ModifierType = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - LineNumber + * - ModifierType + * - Offset + * - OffsetEnd + * - Order + */ class Modifier(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 30.toShort, seq_4762) with ModifierBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala index 068ce4d53..10dce566d 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala @@ -27,83 +27,17 @@ trait NamespaceBase extends AbstractNode with AstNodeBase with StaticType[Namesp object Namespace { val Label = "NAMESPACE" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class Namespace(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 31.toShort, seq_4762) with NamespaceBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala index a57c0d2a6..ac11e8f37 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala @@ -29,109 +29,19 @@ trait NamespaceBlockBase extends AbstractNode with AstNodeBase with StaticType[N object NamespaceBlock { val Label = "NAMESPACE_BLOCK" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = "FILENAME" - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = "FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = flatgraph.SinglePropertyKey[String](kind = 20, name = "FILENAME", default = "") - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = flatgraph.SinglePropertyKey[String](kind = 21, name = "FULL_NAME", default = "") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Filename = "" - val FullName = "" - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - Filename + * - FullName + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class NamespaceBlock(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 32.toShort, seq_4762) with NamespaceBlockBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala index 87409dfaf..d528a7b78 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala @@ -28,105 +28,18 @@ trait ReturnBase extends AbstractNode with ExpressionBase with StaticType[Return object Return { val Label = "RETURN" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Order = -1: Int - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class Return(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 33.toShort, seq_4762) with ReturnBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala index 1a924ca7c..04861adaa 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala @@ -22,28 +22,12 @@ trait TagBase extends AbstractNode with StaticType[TagEMT] { object Tag { val Label = "TAG" - object PropertyNames { - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** This property denotes a string value as used in a key-value pair. */ - val Value = "VALUE" - } - object Properties { - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** This property denotes a string value as used in a key-value pair. */ - val Value = flatgraph.SinglePropertyKey[String](kind = 49, name = "VALUE", default = "") - } - object PropertyDefaults { - val Name = "" - val Value = "" - } } +/** Node properties: + * - Name + * - Value + */ class Tag(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 34.toShort, seq_4762) with TagBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala index 2b9b576d8..07c334093 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala @@ -23,14 +23,11 @@ trait TagNodePairBase extends AbstractNode with StaticType[TagNodePairEMT] { object TagNodePair { val Label = "TAG_NODE_PAIR" - object PropertyNames { - val Node = "node" - val Tag = "tag" - } - object Properties {} - object PropertyDefaults {} } +/** Anynode + * - Tag + */ class TagNodePair(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 35.toShort, seq_4762) with TagNodePairBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala index 1c9d854c3..940968611 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala @@ -29,112 +29,19 @@ trait TemplateDomBase extends AbstractNode with ExpressionBase with StaticType[T object TemplateDom { val Label = "TEMPLATE_DOM" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class TemplateDom(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 36.toShort, seq_4762) with TemplateDomBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala index 9c234c800..b7985d896 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala @@ -23,44 +23,13 @@ trait TypeBase extends AbstractNode with StaticType[TypeEMT] { object Type { val Label = "TYPE" - object PropertyNames { - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = "FULL_NAME" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** The static type decl of a TYPE. This property is matched against the FULL_NAME of TYPE_DECL nodes. It is - * required to have exactly one TYPE_DECL for each different TYPE_DECL_FULL_NAME - */ - val TypeDeclFullName = "TYPE_DECL_FULL_NAME" - } - object Properties { - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = flatgraph.SinglePropertyKey[String](kind = 21, name = "FULL_NAME", default = "") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** The static type decl of a TYPE. This property is matched against the FULL_NAME of TYPE_DECL nodes. It is - * required to have exactly one TYPE_DECL for each different TYPE_DECL_FULL_NAME - */ - val TypeDeclFullName = - flatgraph.SinglePropertyKey[String](kind = 47, name = "TYPE_DECL_FULL_NAME", default = "") - } - object PropertyDefaults { - val FullName = "" - val Name = "" - val TypeDeclFullName = "" - } } +/** Node properties: + * - FullName + * - Name + * - TypeDeclFullName + */ class Type(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 37.toShort, seq_4762) with TypeBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala index 508b5d574..268f1a126 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala @@ -26,76 +26,16 @@ trait TypeArgumentBase extends AbstractNode with AstNodeBase with StaticType[Typ object TypeArgument { val Label = "TYPE_ARGUMENT" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + */ class TypeArgument(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 38.toShort, seq_4762) with TypeArgumentBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala index f627450fb..92dac0809 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala @@ -47,171 +47,25 @@ trait TypeDeclBase extends AbstractNode with AstNodeBase with StaticType[TypeDec object TypeDecl { val Label = "TYPE_DECL" - object PropertyNames { - - /** This property holds the fully qualified name of the type that the node is a type alias of. - */ - val AliasTypeFullName = "ALIAS_TYPE_FULL_NAME" - - /** This field holds the FULL_NAME of the AST parent of an entity. */ - val AstParentFullName = "AST_PARENT_FULL_NAME" - - /** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all - * possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. - */ - val AstParentType = "AST_PARENT_TYPE" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = "FILENAME" - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = "FULL_NAME" - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = "GENERIC_SIGNATURE" - - /** The static types a TYPE_DECL inherits from. This property is matched against the FULL_NAME of TYPE nodes and - * thus it is required to have at least one TYPE node for each TYPE_FULL_NAME - */ - val InheritsFromTypeFullName = "INHERITS_FROM_TYPE_FULL_NAME" - - /** Indicates that the construct (METHOD or TYPE_DECL) is external, that is, it is referenced but not defined in the - * code (applies both to insular parsing and to library functions where we have header files only) - */ - val IsExternal = "IS_EXTERNAL" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This property holds the fully qualified name of the type that the node is a type alias of. - */ - val AliasTypeFullName = flatgraph.OptionalPropertyKey[String](kind = 0, name = "ALIAS_TYPE_FULL_NAME") - - /** This field holds the FULL_NAME of the AST parent of an entity. */ - val AstParentFullName = - flatgraph.SinglePropertyKey[String](kind = 3, name = "AST_PARENT_FULL_NAME", default = "") - - /** The type of the AST parent. Since this is only used in some parts of the graph, the list does not include all - * possible parents by intention. Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. - */ - val AstParentType = flatgraph.SinglePropertyKey[String](kind = 4, name = "AST_PARENT_TYPE", default = "") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** The path of the source file this node was generated from, relative to the root path in the meta data node. This - * field must be set but may be set to the value `` to indicate that no source file can be associated with - * the node, e.g., because the node represents an entity known to exist because it is referenced, but for which the - * file that is is declared in is unknown. - */ - val Filename = flatgraph.SinglePropertyKey[String](kind = 20, name = "FILENAME", default = "") - - /** This is the fully-qualified name of an entity, e.g., the fully-qualified name of a method or type. The details - * of what constitutes a fully-qualified name are language specific. This field SHOULD be human readable. - */ - val FullName = flatgraph.SinglePropertyKey[String](kind = 21, name = "FULL_NAME", default = "") - - /** This field is experimental. It will likely be removed in the future without any notice. It stores type - * information for generic types and methods as well as type information for members and locals where the type - * either contains a type parameter reference or an instantiated type reference. - */ - val GenericSignature = - flatgraph.SinglePropertyKey[String](kind = 22, name = "GENERIC_SIGNATURE", default = "") - - /** The static types a TYPE_DECL inherits from. This property is matched against the FULL_NAME of TYPE nodes and - * thus it is required to have at least one TYPE node for each TYPE_FULL_NAME - */ - val InheritsFromTypeFullName = flatgraph.MultiPropertyKey[String](kind = 27, name = "INHERITS_FROM_TYPE_FULL_NAME") - - /** Indicates that the construct (METHOD or TYPE_DECL) is external, that is, it is referenced but not defined in the - * code (applies both to insular parsing and to library functions where we have header files only) - */ - val IsExternal = flatgraph.SinglePropertyKey[Boolean](kind = 29, name = "IS_EXTERNAL", default = false) - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val AstParentFullName = "" - val AstParentType = "" - val Code = "" - val Filename = "" - val FullName = "" - val GenericSignature = "" - val IsExternal = false - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - AliasTypeFullName + * - AstParentFullName + * - AstParentType + * - Code + * - ColumnNumber + * - Filename + * - FullName + * - GenericSignature + * - InheritsFromTypeFullName + * - IsExternal + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class TypeDecl(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 39.toShort, seq_4762) with TypeDeclBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala index 553b4d235..e6d13d146 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala @@ -27,83 +27,17 @@ trait TypeParameterBase extends AbstractNode with AstNodeBase with StaticType[Ty object TypeParameter { val Label = "TYPE_PARAMETER" - object PropertyNames { - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = "NAME" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - } - object Properties { - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Name of represented object, e.g., method name (e.g. "run") */ - val Name = flatgraph.SinglePropertyKey[String](kind = 38, name = "NAME", default = "") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - } - object PropertyDefaults { - val Code = "" - val Name = "" - val Order = -1: Int - } } +/** Node properties: + * - Code + * - ColumnNumber + * - LineNumber + * - Name + * - Offset + * - OffsetEnd + * - Order + */ class TypeParameter(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 40.toShort, seq_4762) with TypeParameterBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala index 06ba5ccf8..ba3057f22 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala @@ -38,134 +38,21 @@ trait TypeRefBase extends AbstractNode with ExpressionBase with StaticType[TypeR object TypeRef { val Label = "TYPE_REF" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val Order = -1: Int - val TypeFullName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - DynamicTypeHintFullName + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + * - PossibleTypes + * - TypeFullName + */ class TypeRef(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 41.toShort, seq_4762) with TypeRefBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala index 325110de5..99dfdab53 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala @@ -42,152 +42,23 @@ trait UnknownBase extends AbstractNode with ExpressionBase with StaticType[Unkno object Unknown { val Label = "UNKNOWN" - object PropertyNames { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = "ARGUMENT_INDEX" - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = "ARGUMENT_NAME" - - /** This field holds the code snippet that the node represents. */ - val Code = "CODE" - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = "COLUMN_NUMBER" - - /** References to other nodes. This is not a real property; it exists here for the sake of proto serialization only. - * valueType and cardinality are meaningless. - */ - val ContainedRef = "CONTAINED_REF" - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = "DYNAMIC_TYPE_HINT_FULL_NAME" - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = "LINE_NUMBER" - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = "OFFSET" - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = "OFFSET_END" - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = "ORDER" - - /** AST node type name emitted by parser. */ - val ParserTypeName = "PARSER_TYPE_NAME" - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = "POSSIBLE_TYPES" - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = "TYPE_FULL_NAME" - } - object Properties { - - /** AST-children of CALL nodes have an argument index, that is used to match call-site arguments with callee - * parameters. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this - * parameter. CALLs without implicit parameter therefore have arguments starting with index 1. AST-children of - * BLOCK nodes may have an argument index as well; in this case, the last argument index determines the return - * expression of a BLOCK expression. If the `PARAMETER_NAME` field is set, then the `ARGUMENT_INDEX` field is - * ignored. It is suggested to set it to -1. - */ - val ArgumentIndex = flatgraph.SinglePropertyKey[Int](kind = 1, name = "ARGUMENT_INDEX", default = -1: Int) - - /** For calls involving named parameters, the `ARGUMENT_NAME` field holds the name of the parameter initialized by - * the expression. For all other calls, this field is unset. - */ - val ArgumentName = flatgraph.OptionalPropertyKey[String](kind = 2, name = "ARGUMENT_NAME") - - /** This field holds the code snippet that the node represents. */ - val Code = flatgraph.SinglePropertyKey[String](kind = 8, name = "CODE", default = "") - - /** This optional fields provides the column number of the program construct represented by the node. - */ - val ColumnNumber = flatgraph.OptionalPropertyKey[Int](kind = 9, name = "COLUMN_NUMBER") - - /** References to other nodes. This is not a real property; it exists here for the sake of proto serialization only. - * valueType and cardinality are meaningless. - */ - val ContainedRef = flatgraph.SinglePropertyKey[String](kind = 11, name = "CONTAINED_REF", default = "") - - /** Type hint for the dynamic type. These are observed to be verifiable at runtime. */ - val DynamicTypeHintFullName = flatgraph.MultiPropertyKey[String](kind = 16, name = "DYNAMIC_TYPE_HINT_FULL_NAME") - - /** This optional field provides the line number of the program construct represented by the node. - */ - val LineNumber = flatgraph.OptionalPropertyKey[Int](kind = 34, name = "LINE_NUMBER") - - /** Start offset into the CONTENT property of the corresponding FILE node. The offset is such that parts of the - * content can easily be accessed via `content.substring(offset, offsetEnd)`. This means that the offset must be - * measured in utf16 encoding (i.e. neither in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. - * for METHOD nodes this start offset points to the start of the methods source code in the string holding the - * source code of the entire file. - */ - val Offset = flatgraph.OptionalPropertyKey[Int](kind = 39, name = "OFFSET") - - /** End offset (exclusive) into the CONTENT property of the corresponding FILE node. See OFFSET documentation for - * finer details. E.g. for METHOD nodes this end offset points to the first code position which is not part of the - * method. - */ - val OffsetEnd = flatgraph.OptionalPropertyKey[Int](kind = 40, name = "OFFSET_END") - - /** This integer indicates the position of the node among its siblings in the AST. The left-most child has an order - * of 0. - */ - val Order = flatgraph.SinglePropertyKey[Int](kind = 41, name = "ORDER", default = -1: Int) - - /** AST node type name emitted by parser. */ - val ParserTypeName = flatgraph.SinglePropertyKey[String](kind = 43, name = "PARSER_TYPE_NAME", default = "") - - /** Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes no guarantee that types within this property are - * correct. This property is used to capture observations between node interactions during a 'may-analysis'. - */ - val PossibleTypes = flatgraph.MultiPropertyKey[String](kind = 44, name = "POSSIBLE_TYPES") - - /** This field contains the fully-qualified static type name of the program construct represented by a node. It is - * the name of an instantiated type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type - * cannot be determined, this field should be set to the empty string. - */ - val TypeFullName = flatgraph.SinglePropertyKey[String](kind = 48, name = "TYPE_FULL_NAME", default = "") - } - object PropertyDefaults { - val ArgumentIndex = -1: Int - val Code = "" - val ContainedRef = "" - val Order = -1: Int - val ParserTypeName = "" - val TypeFullName = "" - } } +/** Node properties: + * - ArgumentIndex + * - ArgumentName + * - Code + * - ColumnNumber + * - ContainedRef + * - DynamicTypeHintFullName + * - LineNumber + * - Offset + * - OffsetEnd + * - Order + * - ParserTypeName + * - PossibleTypes + * - TypeFullName + */ class Unknown(graph_4762: flatgraph.Graph, seq_4762: Int) extends StoredNode(graph_4762, 42.toShort, seq_4762) with UnknownBase diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/traversals/package.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/traversals/package.scala index 026fb00b3..82f3cc3df 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/traversals/package.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/traversals/package.scala @@ -1,5 +1,6 @@ package io.shiftleft.codepropertygraph.generated +import scala.language.implicitConversions import io.shiftleft.codepropertygraph.generated.nodes package object traversals { From b417bf63deb88f5cc852d6d7e3c4b6b5113bd2f6 Mon Sep 17 00:00:00 2001 From: Johannes Coetzee Date: Mon, 7 Jul 2025 14:06:28 +0200 Subject: [PATCH 2/2] Bump cpg and regenerate sources --- build.sbt | 2 +- .../generated/PropertyDefaults.scala | 87 +- .../generated/PropertyNames.scala | 6 +- .../generated/accessors/Accessors.scala | 344 ++- .../generated/edges/EdgeTypes.scala | 48 +- .../generated/nodes/Annotation.scala | 1663 +------------- .../generated/nodes/AnnotationLiteral.scala | 1627 +------------- .../generated/nodes/AnnotationParameter.scala | 1512 +------------ .../nodes/AnnotationParameterAssign.scala | 1512 +------------ .../generated/nodes/ArrayInitializer.scala | 1592 +------------- .../generated/nodes/Binding.scala | 155 +- .../generated/nodes/Block.scala | 1706 +-------------- .../generated/nodes/Call.scala | 1851 +--------------- .../generated/nodes/ClosureBinding.scala | 166 +- .../generated/nodes/Comment.scala | 1550 +------------ .../generated/nodes/ConfigFile.scala | 117 +- .../generated/nodes/ControlStructure.scala | 1663 +------------- .../generated/nodes/Dependency.scala | 156 +- .../generated/nodes/FieldIdentifier.scala | 1631 +------------- .../generated/nodes/File.scala | 1624 +------------- .../generated/nodes/Finding.scala | 176 +- .../generated/nodes/Identifier.scala | 1741 +-------------- .../generated/nodes/Import.scala | 1717 +-------------- .../generated/nodes/JumpLabel.scala | 1582 +------------- .../generated/nodes/JumpTarget.scala | 1621 +------------- .../generated/nodes/KeyValuePair.scala | 117 +- .../generated/nodes/Literal.scala | 1706 +-------------- .../generated/nodes/Local.scala | 1738 +-------------- .../generated/nodes/Member.scala | 1769 +-------------- .../generated/nodes/MetaData.scala | 233 +- .../generated/nodes/Method.scala | 1925 +---------------- .../generated/nodes/MethodParameterIn.scala | 1816 +--------------- .../generated/nodes/MethodParameterOut.scala | 1699 +-------------- .../generated/nodes/MethodRef.scala | 1741 +-------------- .../generated/nodes/MethodReturn.scala | 1664 +------------- .../generated/nodes/Modifier.scala | 1548 +------------ .../generated/nodes/Namespace.scala | 1547 +------------ .../generated/nodes/NamespaceBlock.scala | 1621 +------------- .../generated/nodes/NewAnnotation.scala | 1614 ++++++++++++++ .../nodes/NewAnnotationLiteral.scala | 1583 ++++++++++++++ .../nodes/NewAnnotationParameter.scala | 1485 +++++++++++++ .../nodes/NewAnnotationParameterAssign.scala | 1485 +++++++++++++ .../generated/nodes/NewArrayInitializer.scala | 1552 +++++++++++++ .../generated/nodes/NewBinding.scala | 141 ++ .../generated/nodes/NewBlock.scala | 1651 ++++++++++++++ .../generated/nodes/NewCall.scala | 1775 +++++++++++++++ .../generated/nodes/NewClosureBinding.scala | 152 ++ .../generated/nodes/NewComment.scala | 1516 +++++++++++++ .../generated/nodes/NewConfigFile.scala | 110 + .../generated/nodes/NewControlStructure.scala | 1614 ++++++++++++++ .../generated/nodes/NewDependency.scala | 146 ++ .../generated/nodes/NewFieldIdentifier.scala | 1583 ++++++++++++++ .../generated/nodes/NewFile.scala | 1583 ++++++++++++++ .../generated/nodes/NewFinding.scala | 159 ++ .../generated/nodes/NewIdentifier.scala | 1682 ++++++++++++++ .../generated/nodes/NewImport.scala | 1665 ++++++++++++++ .../generated/nodes/NewJumpLabel.scala | 1547 +++++++++++++ .../generated/nodes/NewJumpTarget.scala | 1578 ++++++++++++++ .../generated/nodes/NewKeyValuePair.scala | 110 + .../generated/nodes/NewLiteral.scala | 1651 ++++++++++++++ .../generated/nodes/NewLocal.scala | 1682 ++++++++++++++ .../generated/nodes/NewMember.scala | 1708 +++++++++++++++ .../generated/nodes/NewMetaData.scala | 210 ++ .../generated/nodes/NewMethod.scala | 1841 ++++++++++++++++ .../nodes/NewMethodParameterIn.scala | 1749 +++++++++++++++ .../nodes/NewMethodParameterOut.scala | 1645 ++++++++++++++ .../generated/nodes/NewMethodRef.scala | 1682 ++++++++++++++ .../generated/nodes/NewMethodReturn.scala | 1615 ++++++++++++++ .../generated/nodes/NewModifier.scala | 1516 +++++++++++++ .../generated/nodes/NewNamespace.scala | 1516 +++++++++++++ .../generated/nodes/NewNamespaceBlock.scala | 1578 ++++++++++++++ .../generated/nodes/NewReturn.scala | 1552 +++++++++++++ .../generated/nodes/NewTag.scala | 135 ++ .../generated/nodes/NewTagNodePair.scala | 116 + .../generated/nodes/NewTemplateDom.scala | 1583 ++++++++++++++ .../generated/nodes/NewType.scala | 161 ++ .../generated/nodes/NewTypeArgument.scala | 1485 +++++++++++++ .../generated/nodes/NewTypeDecl.scala | 1773 +++++++++++++++ .../generated/nodes/NewTypeParameter.scala | 1516 +++++++++++++ .../generated/nodes/NewTypeRef.scala | 1651 ++++++++++++++ .../generated/nodes/NewUnknown.scala | 1713 +++++++++++++++ .../generated/nodes/Return.scala | 1592 +------------- .../generated/nodes/RootTypes.scala | 382 +++- .../generated/nodes/Tag.scala | 142 +- .../generated/nodes/TagNodePair.scala | 136 +- .../generated/nodes/TemplateDom.scala | 1627 +------------- .../generated/nodes/Type.scala | 174 +- .../generated/nodes/TypeArgument.scala | 1512 +------------ .../generated/nodes/TypeDecl.scala | 1845 +--------------- .../generated/nodes/TypeParameter.scala | 1547 +------------ .../generated/nodes/TypeRef.scala | 1706 +-------------- .../generated/nodes/Unknown.scala | 1777 +-------------- 92 files changed, 56877 insertions(+), 55345 deletions(-) create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotation.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationLiteral.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameter.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameterAssign.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewArrayInitializer.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBinding.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBlock.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewCall.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewClosureBinding.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewComment.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewConfigFile.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewControlStructure.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewDependency.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFieldIdentifier.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFile.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFinding.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewIdentifier.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewImport.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpLabel.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpTarget.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewKeyValuePair.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLiteral.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLocal.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMember.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMetaData.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethod.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterIn.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterOut.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodRef.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodReturn.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewModifier.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespace.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespaceBlock.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewReturn.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTag.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTagNodePair.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTemplateDom.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewType.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeArgument.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeDecl.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeParameter.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeRef.scala create mode 100644 domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewUnknown.scala diff --git a/build.sbt b/build.sbt index 92b5d41e5..c4b7dceb2 100644 --- a/build.sbt +++ b/build.sbt @@ -1,7 +1,7 @@ name := "codepropertygraph" // parsed by project/Versions.scala, updated by updateDependencies.sh -val flatgraphVersion = "0.1.17+4-af1b4582+20250702-1537" +val flatgraphVersion = "0.1.20" inThisBuild( List( diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala index 71ae0663c..56a894a24 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyDefaults.scala @@ -1,63 +1,34 @@ package io.shiftleft.codepropertygraph.generated object PropertyDefaults { - val ArgumentIndex = -1: Int - - val AstParentFullName = "" - - val AstParentType = "" - - val CanonicalName = "" - - val Code = "" - - val ContainedRef = "" - - val Content = "" - + val ArgumentIndex = -1: Int + val AstParentFullName = "" + val AstParentType = "" + val CanonicalName = "" + val Code = "" + val ContainedRef = "" + val Content = "" val ControlStructureType = "" - - val DispatchType = "" - - val EvaluationStrategy = "" - - val Filename = "" - - val FullName = "" - - val GenericSignature = "" - - val Index = -1: Int - - val IsExternal = false - - val IsVariadic = false - - val Key = "" - - val Language = "" - - val MethodFullName = "" - - val ModifierType = "" - - val Name = "" - - val Order = -1: Int - - val ParserTypeName = "" - - val Root = "" - - val Signature = "" - - val TypeDeclFullName = "" - - val TypeFullName = "" - - val Value = "" - - val Variable = "" - - val Version = "" + val DispatchType = "" + val EvaluationStrategy = "" + val Filename = "" + val FullName = "" + val GenericSignature = "" + val Index = -1: Int + val IsExternal = false + val IsVariadic = false + val Key = "" + val Language = "" + val MethodFullName = "" + val ModifierType = "" + val Name = "" + val Order = -1: Int + val ParserTypeName = "" + val Root = "" + val Signature = "" + val TypeDeclFullName = "" + val TypeFullName = "" + val Value = "" + val Variable = "" + val Version = "" } diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala index 0e70d02c2..3dcad746f 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/PropertyNames.scala @@ -274,13 +274,13 @@ object PropertyNames { */ val Version: String = "VERSION" - /** Contained node */ + /** generic node base trait - use if you want to be explicitly unspecific */ val Anynode: String = "AnyNode" - /** Contained node */ + /** This node represents a key value pair, where both the key and the value are strings. */ val KeyValuePair: String = "KEY_VALUE_PAIR" - /** Contained node */ + /** This node represents a tag. */ val Tag: String = "TAG" val All: Set[String] = new HashSet[String]( diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/accessors/Accessors.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/accessors/Accessors.scala index 6c33de6d4..4fcc7d6c9 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/accessors/Accessors.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/accessors/Accessors.scala @@ -8,203 +8,353 @@ object languagebootstrap extends ConcreteStoredConversions object Accessors { /* accessors for concrete stored nodes start */ final class AccessPropertyAliasTypeFullName(val node: nodes.StoredNode) extends AnyVal { - def aliasTypeFullName: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 0, node.seq) + def aliasTypeFullName: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 0, seq = node.seq) } final class AccessPropertyArgumentIndex(val node: nodes.StoredNode) extends AnyVal { - def argumentIndex: Int = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 1, node.seq(), -1: Int) + def argumentIndex: Int = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 1, + seq = node.seq(), + default = -1: Int + ) } final class AccessPropertyArgumentName(val node: nodes.StoredNode) extends AnyVal { - def argumentName: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 2, node.seq) + def argumentName: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 2, seq = node.seq) } final class AccessPropertyAstParentFullName(val node: nodes.StoredNode) extends AnyVal { - def astParentFullName: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 3, node.seq(), "": String) + def astParentFullName: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 3, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyAstParentType(val node: nodes.StoredNode) extends AnyVal { - def astParentType: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 4, node.seq(), "": String) + def astParentType: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 4, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyCanonicalName(val node: nodes.StoredNode) extends AnyVal { - def canonicalName: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 5, node.seq(), "": String) + def canonicalName: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 5, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyClosureBindingId(val node: nodes.StoredNode) extends AnyVal { - def closureBindingId: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 6, node.seq) + def closureBindingId: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 6, seq = node.seq) } final class AccessPropertyClosureOriginalName(val node: nodes.StoredNode) extends AnyVal { - def closureOriginalName: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 7, node.seq) + def closureOriginalName: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 7, seq = node.seq) } final class AccessPropertyCode(val node: nodes.StoredNode) extends AnyVal { - def code: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 8, node.seq(), "": String) + def code: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 8, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyColumnNumber(val node: nodes.StoredNode) extends AnyVal { - def columnNumber: Option[Int] = - flatgraph.Accessors.getNodePropertyOption[Int](node.graph, node.nodeKind, 9, node.seq) + def columnNumber: Option[Int] = flatgraph.Accessors + .getNodePropertyOption[Int](node.graph, nodeKind = node.nodeKind, propertyKind = 9, seq = node.seq) } final class AccessPropertyColumnNumberEnd(val node: nodes.StoredNode) extends AnyVal { - def columnNumberEnd: Option[Int] = - flatgraph.Accessors.getNodePropertyOption[Int](node.graph, node.nodeKind, 10, node.seq) + def columnNumberEnd: Option[Int] = flatgraph.Accessors + .getNodePropertyOption[Int](node.graph, nodeKind = node.nodeKind, propertyKind = 10, seq = node.seq) } final class AccessPropertyContainedRef(val node: nodes.StoredNode) extends AnyVal { - def containedRef: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 11, node.seq(), "": String) + def containedRef: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 11, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyContent(val node: nodes.StoredNode) extends AnyVal { - def content: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 12, node.seq(), "": String) + def content: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 12, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyControlStructureType(val node: nodes.StoredNode) extends AnyVal { - def controlStructureType: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 13, node.seq(), "": String) + def controlStructureType: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 13, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyDependencyGroupId(val node: nodes.StoredNode) extends AnyVal { - def dependencyGroupId: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 14, node.seq) + def dependencyGroupId: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 14, seq = node.seq) } final class AccessPropertyDispatchType(val node: nodes.StoredNode) extends AnyVal { - def dispatchType: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 15, node.seq(), "": String) + def dispatchType: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 15, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyDynamicTypeHintFullName(val node: nodes.StoredNode) extends AnyVal { - def dynamicTypeHintFullName: IndexedSeq[String] = - flatgraph.Accessors.getNodePropertyMulti[String](node.graph, node.nodeKind, 16, node.seq) + def dynamicTypeHintFullName: IndexedSeq[String] = flatgraph.Accessors + .getNodePropertyMulti[String](node.graph, nodeKind = node.nodeKind, propertyKind = 16, seq = node.seq) } final class AccessPropertyEvaluationStrategy(val node: nodes.StoredNode) extends AnyVal { - def evaluationStrategy: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 17, node.seq(), "": String) + def evaluationStrategy: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 17, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyEvidenceDescription(val node: nodes.StoredNode) extends AnyVal { - def evidenceDescription: IndexedSeq[String] = - flatgraph.Accessors.getNodePropertyMulti[String](node.graph, node.nodeKind, 18, node.seq) + def evidenceDescription: IndexedSeq[String] = flatgraph.Accessors + .getNodePropertyMulti[String](node.graph, nodeKind = node.nodeKind, propertyKind = 18, seq = node.seq) } final class AccessPropertyExplicitAs(val node: nodes.StoredNode) extends AnyVal { - def explicitAs: Option[Boolean] = - flatgraph.Accessors.getNodePropertyOption[Boolean](node.graph, node.nodeKind, 19, node.seq) + def explicitAs: Option[Boolean] = flatgraph.Accessors + .getNodePropertyOption[Boolean](node.graph, nodeKind = node.nodeKind, propertyKind = 19, seq = node.seq) } final class AccessPropertyFilename(val node: nodes.StoredNode) extends AnyVal { - def filename: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 20, node.seq(), "": String) + def filename: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 20, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyFullName(val node: nodes.StoredNode) extends AnyVal { - def fullName: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 21, node.seq(), "": String) + def fullName: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 21, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyGenericSignature(val node: nodes.StoredNode) extends AnyVal { - def genericSignature: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 22, node.seq(), "": String) + def genericSignature: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 22, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyHash(val node: nodes.StoredNode) extends AnyVal { - def hash: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 23, node.seq) + def hash: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 23, seq = node.seq) } final class AccessPropertyImportedAs(val node: nodes.StoredNode) extends AnyVal { - def importedAs: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 24, node.seq) + def importedAs: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 24, seq = node.seq) } final class AccessPropertyImportedEntity(val node: nodes.StoredNode) extends AnyVal { - def importedEntity: Option[String] = - flatgraph.Accessors.getNodePropertyOption[String](node.graph, node.nodeKind, 25, node.seq) + def importedEntity: Option[String] = flatgraph.Accessors + .getNodePropertyOption[String](node.graph, nodeKind = node.nodeKind, propertyKind = 25, seq = node.seq) } final class AccessPropertyIndex(val node: nodes.StoredNode) extends AnyVal { - def index: Int = flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 26, node.seq(), -1: Int) + def index: Int = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 26, + seq = node.seq(), + default = -1: Int + ) } final class AccessPropertyInheritsFromTypeFullName(val node: nodes.StoredNode) extends AnyVal { - def inheritsFromTypeFullName: IndexedSeq[String] = - flatgraph.Accessors.getNodePropertyMulti[String](node.graph, node.nodeKind, 27, node.seq) + def inheritsFromTypeFullName: IndexedSeq[String] = flatgraph.Accessors + .getNodePropertyMulti[String](node.graph, nodeKind = node.nodeKind, propertyKind = 27, seq = node.seq) } final class AccessPropertyIsExplicit(val node: nodes.StoredNode) extends AnyVal { - def isExplicit: Option[Boolean] = - flatgraph.Accessors.getNodePropertyOption[Boolean](node.graph, node.nodeKind, 28, node.seq) + def isExplicit: Option[Boolean] = flatgraph.Accessors + .getNodePropertyOption[Boolean](node.graph, nodeKind = node.nodeKind, propertyKind = 28, seq = node.seq) } final class AccessPropertyIsExternal(val node: nodes.StoredNode) extends AnyVal { - def isExternal: Boolean = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 29, node.seq(), false: Boolean) + def isExternal: Boolean = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 29, + seq = node.seq(), + default = false: Boolean + ) } final class AccessPropertyIsVariadic(val node: nodes.StoredNode) extends AnyVal { - def isVariadic: Boolean = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 30, node.seq(), false: Boolean) + def isVariadic: Boolean = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 30, + seq = node.seq(), + default = false: Boolean + ) } final class AccessPropertyIsWildcard(val node: nodes.StoredNode) extends AnyVal { - def isWildcard: Option[Boolean] = - flatgraph.Accessors.getNodePropertyOption[Boolean](node.graph, node.nodeKind, 31, node.seq) + def isWildcard: Option[Boolean] = flatgraph.Accessors + .getNodePropertyOption[Boolean](node.graph, nodeKind = node.nodeKind, propertyKind = 31, seq = node.seq) } final class AccessPropertyKey(val node: nodes.StoredNode) extends AnyVal { - def key: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 32, node.seq(), "": String) + def key: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 32, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyLanguage(val node: nodes.StoredNode) extends AnyVal { - def language: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 33, node.seq(), "": String) + def language: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 33, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyLineNumber(val node: nodes.StoredNode) extends AnyVal { - def lineNumber: Option[Int] = - flatgraph.Accessors.getNodePropertyOption[Int](node.graph, node.nodeKind, 34, node.seq) + def lineNumber: Option[Int] = flatgraph.Accessors + .getNodePropertyOption[Int](node.graph, nodeKind = node.nodeKind, propertyKind = 34, seq = node.seq) } final class AccessPropertyLineNumberEnd(val node: nodes.StoredNode) extends AnyVal { - def lineNumberEnd: Option[Int] = - flatgraph.Accessors.getNodePropertyOption[Int](node.graph, node.nodeKind, 35, node.seq) + def lineNumberEnd: Option[Int] = flatgraph.Accessors + .getNodePropertyOption[Int](node.graph, nodeKind = node.nodeKind, propertyKind = 35, seq = node.seq) } final class AccessPropertyMethodFullName(val node: nodes.StoredNode) extends AnyVal { - def methodFullName: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 36, node.seq(), "": String) + def methodFullName: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 36, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyModifierType(val node: nodes.StoredNode) extends AnyVal { - def modifierType: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 37, node.seq(), "": String) + def modifierType: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 37, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyName(val node: nodes.StoredNode) extends AnyVal { - def name: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 38, node.seq(), "": String) + def name: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 38, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyOffset(val node: nodes.StoredNode) extends AnyVal { - def offset: Option[Int] = flatgraph.Accessors.getNodePropertyOption[Int](node.graph, node.nodeKind, 39, node.seq) + def offset: Option[Int] = flatgraph.Accessors + .getNodePropertyOption[Int](node.graph, nodeKind = node.nodeKind, propertyKind = 39, seq = node.seq) } final class AccessPropertyOffsetEnd(val node: nodes.StoredNode) extends AnyVal { - def offsetEnd: Option[Int] = flatgraph.Accessors.getNodePropertyOption[Int](node.graph, node.nodeKind, 40, node.seq) + def offsetEnd: Option[Int] = flatgraph.Accessors + .getNodePropertyOption[Int](node.graph, nodeKind = node.nodeKind, propertyKind = 40, seq = node.seq) } final class AccessPropertyOrder(val node: nodes.StoredNode) extends AnyVal { - def order: Int = flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 41, node.seq(), -1: Int) + def order: Int = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 41, + seq = node.seq(), + default = -1: Int + ) } final class AccessPropertyOverlays(val node: nodes.StoredNode) extends AnyVal { - def overlays: IndexedSeq[String] = - flatgraph.Accessors.getNodePropertyMulti[String](node.graph, node.nodeKind, 42, node.seq) + def overlays: IndexedSeq[String] = flatgraph.Accessors + .getNodePropertyMulti[String](node.graph, nodeKind = node.nodeKind, propertyKind = 42, seq = node.seq) } final class AccessPropertyParserTypeName(val node: nodes.StoredNode) extends AnyVal { - def parserTypeName: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 43, node.seq(), "": String) + def parserTypeName: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 43, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyPossibleTypes(val node: nodes.StoredNode) extends AnyVal { - def possibleTypes: IndexedSeq[String] = - flatgraph.Accessors.getNodePropertyMulti[String](node.graph, node.nodeKind, 44, node.seq) + def possibleTypes: IndexedSeq[String] = flatgraph.Accessors + .getNodePropertyMulti[String](node.graph, nodeKind = node.nodeKind, propertyKind = 44, seq = node.seq) } final class AccessPropertyRoot(val node: nodes.StoredNode) extends AnyVal { - def root: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 45, node.seq(), "": String) + def root: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 45, + seq = node.seq(), + default = "": String + ) } final class AccessPropertySignature(val node: nodes.StoredNode) extends AnyVal { - def signature: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 46, node.seq(), "": String) + def signature: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 46, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyTypeDeclFullName(val node: nodes.StoredNode) extends AnyVal { - def typeDeclFullName: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 47, node.seq(), "": String) + def typeDeclFullName: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 47, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyTypeFullName(val node: nodes.StoredNode) extends AnyVal { - def typeFullName: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 48, node.seq(), "": String) + def typeFullName: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 48, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyValue(val node: nodes.StoredNode) extends AnyVal { - def value: String = flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 49, node.seq(), "": String) + def value: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 49, + seq = node.seq(), + default = "": String + ) } final class AccessPropertyVersion(val node: nodes.StoredNode) extends AnyVal { - def version: String = - flatgraph.Accessors.getNodePropertySingle(node.graph, node.nodeKind, 50, node.seq(), "": String) + def version: String = flatgraph.Accessors.getNodePropertySingle( + node.graph, + nodeKind = node.nodeKind, + propertyKind = 50, + seq = node.seq(), + default = "": String + ) } /* accessors for concrete stored nodes end */ diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/edges/EdgeTypes.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/edges/EdgeTypes.scala index 99b9ad42c..3ecf2dd61 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/edges/EdgeTypes.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/edges/EdgeTypes.scala @@ -6,7 +6,7 @@ object AliasOf { } class AliasOf(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 0.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 0, subSeq_4862, property_4862) {} object Argument { val Label = "ARGUMENT" @@ -14,7 +14,7 @@ object Argument { } class Argument(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 1.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 1, subSeq_4862, property_4862) {} object Ast { val Label = "AST" @@ -22,7 +22,7 @@ object Ast { } class Ast(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 2.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 2, subSeq_4862, property_4862) {} object Binds { val Label = "BINDS" @@ -30,7 +30,7 @@ object Binds { } class Binds(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 3.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 3, subSeq_4862, property_4862) {} object BindsTo { val Label = "BINDS_TO" @@ -38,7 +38,7 @@ object BindsTo { } class BindsTo(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 4.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 4, subSeq_4862, property_4862) {} object Call { val Label = "CALL" @@ -46,7 +46,7 @@ object Call { } class Call(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 5.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 5, subSeq_4862, property_4862) {} object Capture { val Label = "CAPTURE" @@ -54,7 +54,7 @@ object Capture { } class Capture(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 6.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 6, subSeq_4862, property_4862) {} object CapturedBy { val Label = "CAPTURED_BY" @@ -62,7 +62,7 @@ object CapturedBy { } class CapturedBy(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 7.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 7, subSeq_4862, property_4862) {} object Cdg { val Label = "CDG" @@ -70,7 +70,7 @@ object Cdg { } class Cdg(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 8.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 8, subSeq_4862, property_4862) {} object Cfg { val Label = "CFG" @@ -78,7 +78,7 @@ object Cfg { } class Cfg(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 9.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 9, subSeq_4862, property_4862) {} object Condition { val Label = "CONDITION" @@ -86,7 +86,7 @@ object Condition { } class Condition(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 10.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 10, subSeq_4862, property_4862) {} object Contains { val Label = "CONTAINS" @@ -94,7 +94,7 @@ object Contains { } class Contains(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 11.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 11, subSeq_4862, property_4862) {} object Dominate { val Label = "DOMINATE" @@ -102,7 +102,7 @@ object Dominate { } class Dominate(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 12.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 12, subSeq_4862, property_4862) {} object EvalType { val Label = "EVAL_TYPE" @@ -110,7 +110,7 @@ object EvalType { } class EvalType(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 13.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 13, subSeq_4862, property_4862) {} object Imports { val Label = "IMPORTS" @@ -118,7 +118,7 @@ object Imports { } class Imports(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 14.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 14, subSeq_4862, property_4862) {} object InheritsFrom { val Label = "INHERITS_FROM" @@ -126,7 +126,7 @@ object InheritsFrom { } class InheritsFrom(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 15.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 15, subSeq_4862, property_4862) {} object IsCallForImport { val Label = "IS_CALL_FOR_IMPORT" @@ -134,7 +134,7 @@ object IsCallForImport { } class IsCallForImport(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 16.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 16, subSeq_4862, property_4862) {} object ParameterLink { val Label = "PARAMETER_LINK" @@ -142,7 +142,7 @@ object ParameterLink { } class ParameterLink(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 17.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 17, subSeq_4862, property_4862) {} object PostDominate { val Label = "POST_DOMINATE" @@ -150,7 +150,7 @@ object PostDominate { } class PostDominate(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 18.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 18, subSeq_4862, property_4862) {} object ReachingDef { val Label = "REACHING_DEF" @@ -158,7 +158,7 @@ object ReachingDef { } class ReachingDef(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 19.toShort, subSeq_4862, property_4862) { + extends flatgraph.Edge(src_4762, dst_4762, 19, subSeq_4862, property_4862) { override def propertyName: Option[String] = ReachingDef.propertyName } @@ -168,7 +168,7 @@ object Receiver { } class Receiver(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 20.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 20, subSeq_4862, property_4862) {} object Ref { val Label = "REF" @@ -176,7 +176,7 @@ object Ref { } class Ref(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 21.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 21, subSeq_4862, property_4862) {} object SourceFile { val Label = "SOURCE_FILE" @@ -184,7 +184,7 @@ object SourceFile { } class SourceFile(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 22.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 22, subSeq_4862, property_4862) {} object TaggedBy { val Label = "TAGGED_BY" @@ -192,4 +192,4 @@ object TaggedBy { } class TaggedBy(src_4762: flatgraph.GNode, dst_4762: flatgraph.GNode, subSeq_4862: Int, property_4862: Any) - extends flatgraph.Edge(src_4762, dst_4762, 23.toShort, subSeq_4862, property_4862) {} + extends flatgraph.Edge(src_4762, dst_4762, 23, subSeq_4862, property_4862) {} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala index edefe33e2..8aaffc26e 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Annotation.scala @@ -32,20 +32,50 @@ object Annotation { val Label = "ANNOTATION" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - FullName - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ FullName (String); Cardinality `one` (mandatory with default value ``); This is the fully-qualified name of + * an entity, e.g., the fully-qualified name of a method or type. The details of what constitutes a fully-qualified + * name are language specific. This field SHOULD be human readable. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class Annotation(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 0.toShort, seq_4762) + extends StoredNode(graph_4762, 0, seq_4762) with AnnotationBase with Expression with StaticType[AnnotationEMT] { @@ -85,1612 +115,3 @@ class Annotation(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Annotation] } - -object NewAnnotation { - def apply(): NewAnnotation = new NewAnnotation - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Annotation_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_fullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - dstCast(offset) = generated.fullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Annotation_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotation => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewAnnotation extends NewNode(0.toShort) with AnnotationBase with ExpressionNew { - override type StoredNodeType = Annotation - override def label: String = "ANNOTATION" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotation.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotation.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var fullName: String = "": String - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def fullName(value: String): this.type = { this.fullName = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 21, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewAnnotation - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.fullName = this.fullName - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "fullName" - case 5 => "lineNumber" - case 6 => "name" - case 7 => "offset" - case 8 => "offsetEnd" - case 9 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.fullName - case 5 => this.lineNumber - case 6 => this.name - case 7 => this.offset - case 8 => this.offsetEnd - case 9 => this.order - case _ => null - } - - override def productPrefix = "NewAnnotation" - override def productArity = 10 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotation] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala index 2cdec3470..6ec4fefd8 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationLiteral.scala @@ -31,19 +31,46 @@ object AnnotationLiteral { val Label = "ANNOTATION_LITERAL" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class AnnotationLiteral(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 1.toShort, seq_4762) + extends StoredNode(graph_4762, 1, seq_4762) with AnnotationLiteralBase with Expression with StaticType[AnnotationLiteralEMT] { @@ -81,1581 +108,3 @@ class AnnotationLiteral(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[AnnotationLiteral] } - -object NewAnnotationLiteral { - def apply(): NewAnnotationLiteral = new NewAnnotationLiteral - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_AnnotationLiteral_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationLiteral_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationLiteral => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewAnnotationLiteral extends NewNode(1.toShort) with AnnotationLiteralBase with ExpressionNew { - override type StoredNodeType = AnnotationLiteral - override def label: String = "ANNOTATION_LITERAL" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotationLiteral.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotationLiteral.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewAnnotationLiteral - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "lineNumber" - case 5 => "name" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.lineNumber - case 5 => this.name - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case _ => null - } - - override def productPrefix = "NewAnnotationLiteral" - override def productArity = 9 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotationLiteral] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala index acd8e97a1..b934f7522 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameter.scala @@ -28,16 +28,32 @@ object AnnotationParameter { val Label = "ANNOTATION_PARAMETER" } -/** Node properties: - * - Code - * - ColumnNumber - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class AnnotationParameter(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 2.toShort, seq_4762) + extends StoredNode(graph_4762, 2, seq_4762) with AnnotationParameterBase with AstNode with StaticType[AnnotationParameterEMT] { @@ -69,1483 +85,3 @@ class AnnotationParameter(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[AnnotationParameter] } - -object NewAnnotationParameter { - def apply(): NewAnnotationParameter = new NewAnnotationParameter - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_AnnotationParameter_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameter => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameter_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameter => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameter_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameter => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameter_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameter => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameter_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameter => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameter_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameter => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewAnnotationParameter extends NewNode(2.toShort) with AnnotationParameterBase with AstNodeNew { - override type StoredNodeType = AnnotationParameter - override def label: String = "ANNOTATION_PARAMETER" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotationParameter.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotationParameter.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewAnnotationParameter - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "lineNumber" - case 3 => "offset" - case 4 => "offsetEnd" - case 5 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.lineNumber - case 3 => this.offset - case 4 => this.offsetEnd - case 5 => this.order - case _ => null - } - - override def productPrefix = "NewAnnotationParameter" - override def productArity = 6 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotationParameter] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala index cea69a30b..07bea3aec 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/AnnotationParameterAssign.scala @@ -31,16 +31,32 @@ object AnnotationParameterAssign { val Label = "ANNOTATION_PARAMETER_ASSIGN" } -/** Node properties: - * - Code - * - ColumnNumber - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class AnnotationParameterAssign(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 3.toShort, seq_4762) + extends StoredNode(graph_4762, 3, seq_4762) with AnnotationParameterAssignBase with AstNode with StaticType[AnnotationParameterAssignEMT] { @@ -72,1483 +88,3 @@ class AnnotationParameterAssign(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[AnnotationParameterAssign] } - -object NewAnnotationParameterAssign { - def apply(): NewAnnotationParameterAssign = new NewAnnotationParameterAssign - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_AnnotationParameterAssign_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameterAssign => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameterAssign_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameterAssign => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameterAssign_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameterAssign => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameterAssign_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameterAssign => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameterAssign_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameterAssign => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_AnnotationParameterAssign_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewAnnotationParameterAssign => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewAnnotationParameterAssign extends NewNode(3.toShort) with AnnotationParameterAssignBase with AstNodeNew { - override type StoredNodeType = AnnotationParameterAssign - override def label: String = "ANNOTATION_PARAMETER_ASSIGN" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotationParameterAssign.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewAnnotationParameterAssign.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewAnnotationParameterAssign - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "lineNumber" - case 3 => "offset" - case 4 => "offsetEnd" - case 5 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.lineNumber - case 3 => this.offset - case 4 => this.offsetEnd - case 5 => this.order - case _ => null - } - - override def productPrefix = "NewAnnotationParameterAssign" - override def productArity = 6 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotationParameterAssign] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala index 98ed46e61..93eb24502 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ArrayInitializer.scala @@ -30,18 +30,43 @@ object ArrayInitializer { val Label = "ARRAY_INITIALIZER" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class ArrayInitializer(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 4.toShort, seq_4762) + extends StoredNode(graph_4762, 4, seq_4762) with ArrayInitializerBase with Expression with StaticType[ArrayInitializerEMT] { @@ -77,1550 +102,3 @@ class ArrayInitializer(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[ArrayInitializer] } - -object NewArrayInitializer { - def apply(): NewArrayInitializer = new NewArrayInitializer - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_ArrayInitializer_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ArrayInitializer_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ArrayInitializer_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ArrayInitializer_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ArrayInitializer_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ArrayInitializer_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ArrayInitializer_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ArrayInitializer_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewArrayInitializer => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewArrayInitializer extends NewNode(4.toShort) with ArrayInitializerBase with AstNodeNew with ExpressionNew { - override type StoredNodeType = ArrayInitializer - override def label: String = "ARRAY_INITIALIZER" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewArrayInitializer.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewArrayInitializer.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewArrayInitializer - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "lineNumber" - case 5 => "offset" - case 6 => "offsetEnd" - case 7 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.lineNumber - case 5 => this.offset - case 6 => this.offsetEnd - case 7 => this.order - case _ => null - } - - override def productPrefix = "NewArrayInitializer" - override def productArity = 8 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewArrayInitializer] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala index 38086663f..3ad20847f 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Binding.scala @@ -25,13 +25,22 @@ object Binding { val Label = "BINDING" } -/** Node properties: - * - MethodFullName - * - Name - * - Signature +/** * NODE PROPERTIES: + * + * ▸ MethodFullName (String); Cardinality `one` (mandatory with default value ``); The FULL_NAME of a method. + * Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node for each METHOD_FULL_NAME + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Signature (String); Cardinality `one` (mandatory with default value ``); The method signature encodes the types of + * parameters in a string. The string SHOULD be human readable and suitable for differentiating methods with different + * parameter types sufficiently to allow for resolving of function overloading. The present specification does not + * enforce a strict format for the signature, that is, it can be chosen by the frontend implementor to fit the source + * language. */ class Binding(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 5.toShort, seq_4762) + extends StoredNode(graph_4762, 5, seq_4762) with BindingBase with StaticType[BindingEMT] { @@ -56,139 +65,3 @@ class Binding(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Binding] } - -object NewBinding { - def apply(): NewBinding = new NewBinding - private val outNeighbors: Map[String, Set[String]] = Map("REF" -> Set("METHOD")) - private val inNeighbors: Map[String, Set[String]] = Map("BINDS" -> Set("TYPE_DECL")) - - object InsertionHelpers { - object NewNodeInserter_Binding_methodFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBinding => - dstCast(offset) = generated.methodFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Binding_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBinding => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Binding_signature extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBinding => - dstCast(offset) = generated.signature - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewBinding extends NewNode(5.toShort) with BindingBase { - override type StoredNodeType = Binding - override def label: String = "BINDING" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewBinding.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewBinding.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var methodFullName: String = "": String - var name: String = "": String - var signature: String = "": String - def methodFullName(value: String): this.type = { this.methodFullName = value; this } - def name(value: String): this.type = { this.name = value; this } - def signature(value: String): this.type = { this.signature = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 36, 1) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 46, 1) - } - - override def copy: this.type = { - val newInstance = new NewBinding - newInstance.methodFullName = this.methodFullName - newInstance.name = this.name - newInstance.signature = this.signature - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "methodFullName" - case 1 => "name" - case 2 => "signature" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.methodFullName - case 1 => this.name - case 2 => this.signature - case _ => null - } - - override def productPrefix = "NewBinding" - override def productArity = 3 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewBinding] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala index 17eeabc16..2a0655e38 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Block.scala @@ -40,21 +40,55 @@ object Block { val Label = "BLOCK" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - LineNumber - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class Block(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 6.toShort, seq_4762) + extends StoredNode(graph_4762, 6, seq_4762) with BlockBase with Expression with StaticType[BlockEMT] { @@ -96,1649 +130,3 @@ class Block(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Block] } - -object NewBlock { - def apply(): NewBlock = new NewBlock - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Block_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Block_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewBlock => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewBlock extends NewNode(6.toShort) with BlockBase with ExpressionNew { - override type StoredNodeType = Block - override def label: String = "BLOCK" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewBlock.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewBlock.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewBlock - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "dynamicTypeHintFullName" - case 5 => "lineNumber" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case 9 => "possibleTypes" - case 10 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.dynamicTypeHintFullName - case 5 => this.lineNumber - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case 9 => this.possibleTypes - case 10 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewBlock" - override def productArity = 11 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewBlock] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala index 61020831b..2ea80382b 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Call.scala @@ -47,25 +47,72 @@ object Call { val Label = "CALL" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - DispatchType - * - DynamicTypeHintFullName - * - LineNumber - * - MethodFullName - * - Name - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - Signature - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DispatchType (String); Cardinality `one` (mandatory with default value ``); This field holds the dispatch + * type of a call, which is either `STATIC_DISPATCH` or `DYNAMIC_DISPATCH`. For statically dispatched method calls, the + * call target is known at compile time while for dynamically dispatched calls, it can only be determined at runtime as + * it may depend on the type of an object (as is the case for virtual method calls) or calculation of an offset. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ MethodFullName (String); Cardinality `one` (mandatory with default value ``); The FULL_NAME of a method. + * Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node for each METHOD_FULL_NAME + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ Signature (String); Cardinality `one` (mandatory with default value ``); The method signature encodes the types of + * parameters in a string. The string SHOULD be human readable and suitable for differentiating methods with different + * parameter types sufficiently to allow for resolving of function overloading. The present specification does not + * enforce a strict format for the signature, that is, it can be chosen by the frontend implementor to fit the source + * language. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class Call(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 7.toShort, seq_4762) + extends StoredNode(graph_4762, 7, seq_4762) with CallBase with CallRepr with Expression @@ -116,1773 +163,3 @@ class Call(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Call] } - -object NewCall { - def apply(): NewCall = new NewCall - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Call_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_dispatchType extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.dispatchType - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_methodFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.methodFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_signature extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.signature - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Call_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewCall => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewCall extends NewNode(7.toShort) with CallBase with CallReprNew with ExpressionNew { - override type StoredNodeType = Call - override def label: String = "CALL" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewCall.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewCall.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dispatchType: String = "": String - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var lineNumber: Option[Int] = None - var methodFullName: String = "": String - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var signature: String = "": String - var typeFullName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dispatchType(value: String): this.type = { this.dispatchType = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def methodFullName(value: String): this.type = { this.methodFullName = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def signature(value: String): this.type = { this.signature = value; this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 15, 1) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 36, 1) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 46, 1) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewCall - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dispatchType = this.dispatchType - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.lineNumber = this.lineNumber - newInstance.methodFullName = this.methodFullName - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.signature = this.signature - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "dispatchType" - case 5 => "dynamicTypeHintFullName" - case 6 => "lineNumber" - case 7 => "methodFullName" - case 8 => "name" - case 9 => "offset" - case 10 => "offsetEnd" - case 11 => "order" - case 12 => "possibleTypes" - case 13 => "signature" - case 14 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.dispatchType - case 5 => this.dynamicTypeHintFullName - case 6 => this.lineNumber - case 7 => this.methodFullName - case 8 => this.name - case 9 => this.offset - case 10 => this.offsetEnd - case 11 => this.order - case 12 => this.possibleTypes - case 13 => this.signature - case 14 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewCall" - override def productArity = 15 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewCall] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala index 8fd0672ee..072474e9a 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ClosureBinding.scala @@ -29,13 +29,22 @@ object ClosureBinding { val Label = "CLOSURE_BINDING" } -/** Node properties: - * - ClosureBindingId - * - ClosureOriginalName - * - EvaluationStrategy +/** * NODE PROPERTIES: + * + * ▸ ClosureBindingId (String); Cardinality `ZeroOrOne` (optional); Identifier which uniquely describes a + * CLOSURE_BINDING. This property is used to match captured LOCAL nodes with the corresponding CLOSURE_BINDING nodes + * + * ▸ ClosureOriginalName (String); Cardinality `ZeroOrOne` (optional); Deprecated. Create an explict REF edge instead. + * Formerly the original name of the (potentially mangled) captured variable + * + * ▸ EvaluationStrategy (String); Cardinality `one` (mandatory with default value ``); For formal method input + * parameters, output parameters, and return parameters, this field holds the evaluation strategy, which is one of the + * following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, 2) `BY_VALUE` indicates that it is + * passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a pointer/reference and it is shared with + * the caller/callee. While a copy of the pointer is made, a copy of the object that it points to is not made. */ class ClosureBinding(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 8.toShort, seq_4762) + extends StoredNode(graph_4762, 8, seq_4762) with ClosureBindingBase with StaticType[ClosureBindingEMT] { @@ -60,150 +69,3 @@ class ClosureBinding(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[ClosureBinding] } - -object NewClosureBinding { - def apply(): NewClosureBinding = new NewClosureBinding - private val outNeighbors: Map[String, Set[String]] = Map("REF" -> Set("LOCAL", "METHOD_PARAMETER_IN")) - private val inNeighbors: Map[String, Set[String]] = - Map("CAPTURE" -> Set("METHOD_REF", "TYPE_REF"), "CAPTURED_BY" -> Set("LOCAL", "METHOD_PARAMETER_IN")) - - object InsertionHelpers { - object NewNodeInserter_ClosureBinding_closureBindingId extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewClosureBinding => - generated.closureBindingId match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ClosureBinding_closureOriginalName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewClosureBinding => - generated.closureOriginalName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ClosureBinding_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewClosureBinding => - dstCast(offset) = generated.evaluationStrategy - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewClosureBinding extends NewNode(8.toShort) with ClosureBindingBase { - override type StoredNodeType = ClosureBinding - override def label: String = "CLOSURE_BINDING" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewClosureBinding.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewClosureBinding.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var closureBindingId: Option[String] = None - var closureOriginalName: Option[String] = None - var evaluationStrategy: String = "": String - def closureBindingId(value: Option[String]): this.type = { this.closureBindingId = value; this } - def closureBindingId(value: String): this.type = { this.closureBindingId = Option(value); this } - def closureOriginalName(value: Option[String]): this.type = { this.closureOriginalName = value; this } - def closureOriginalName(value: String): this.type = { this.closureOriginalName = Option(value); this } - def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 6, closureBindingId.size) - interface.countProperty(this, 7, closureOriginalName.size) - interface.countProperty(this, 17, 1) - } - - override def copy: this.type = { - val newInstance = new NewClosureBinding - newInstance.closureBindingId = this.closureBindingId - newInstance.closureOriginalName = this.closureOriginalName - newInstance.evaluationStrategy = this.evaluationStrategy - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "closureBindingId" - case 1 => "closureOriginalName" - case 2 => "evaluationStrategy" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.closureBindingId - case 1 => this.closureOriginalName - case 2 => this.evaluationStrategy - case _ => null - } - - override def productPrefix = "NewClosureBinding" - override def productArity = 3 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewClosureBinding] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala index 85f9b6719..9f2528bb3 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Comment.scala @@ -29,17 +29,38 @@ object Comment { val Label = "COMMENT" } -/** Node properties: - * - Code - * - ColumnNumber - * - Filename - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ Filename (String); Cardinality `one` (mandatory with default value ``); The path of the source file this + * node was generated from, relative to the root path in the meta data node. This field must be set but may be set to + * the value `` to indicate that no source file can be associated with the node, e.g., because the node + * represents an entity known to exist because it is referenced, but for which the file that is is declared in is + * unknown. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class Comment(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 9.toShort, seq_4762) + extends StoredNode(graph_4762, 9, seq_4762) with CommentBase with AstNode with StaticType[CommentEMT] { @@ -73,1514 +94,3 @@ class Comment(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Comment] } - -object NewComment { - def apply(): NewComment = new NewComment - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Comment_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewComment => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Comment_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewComment => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Comment_filename extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewComment => - dstCast(offset) = generated.filename - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Comment_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewComment => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Comment_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewComment => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Comment_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewComment => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Comment_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewComment => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewComment extends NewNode(9.toShort) with CommentBase with AstNodeNew { - override type StoredNodeType = Comment - override def label: String = "COMMENT" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewComment.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewComment.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var filename: String = "": String - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def filename(value: String): this.type = { this.filename = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 20, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewComment - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.filename = this.filename - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "filename" - case 3 => "lineNumber" - case 4 => "offset" - case 5 => "offsetEnd" - case 6 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.filename - case 3 => this.lineNumber - case 4 => this.offset - case 5 => this.offsetEnd - case 6 => this.order - case _ => null - } - - override def productPrefix = "NewComment" - override def productArity = 7 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewComment] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala index b76493623..2679849dd 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ConfigFile.scala @@ -24,12 +24,16 @@ object ConfigFile { val Label = "CONFIG_FILE" } -/** Node properties: - * - Content - * - Name +/** * NODE PROPERTIES: + * + * ▸ Content (String); Cardinality `one` (mandatory with default value ``); Certain files, e.g., configuration + * files, may be included in the CPG as-is. For such files, the `CONTENT` field contains the files content. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") */ class ConfigFile(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 10.toShort, seq_4762) + extends StoredNode(graph_4762, 10, seq_4762) with ConfigFileBase with StaticType[ConfigFileEMT] { @@ -52,108 +56,3 @@ class ConfigFile(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[ConfigFile] } - -object NewConfigFile { - def apply(): NewConfigFile = new NewConfigFile - private val outNeighbors: Map[String, Set[String]] = Map() - private val inNeighbors: Map[String, Set[String]] = Map() - - object InsertionHelpers { - object NewNodeInserter_ConfigFile_content extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewConfigFile => - dstCast(offset) = generated.content - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ConfigFile_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewConfigFile => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewConfigFile extends NewNode(10.toShort) with ConfigFileBase { - override type StoredNodeType = ConfigFile - override def label: String = "CONFIG_FILE" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewConfigFile.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewConfigFile.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var content: String = "": String - var name: String = "": String - def content(value: String): this.type = { this.content = value; this } - def name(value: String): this.type = { this.name = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 12, 1) - interface.countProperty(this, 38, 1) - } - - override def copy: this.type = { - val newInstance = new NewConfigFile - newInstance.content = this.content - newInstance.name = this.name - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "content" - case 1 => "name" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.content - case 1 => this.name - case _ => null - } - - override def productPrefix = "NewConfigFile" - override def productArity = 2 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewConfigFile] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala index 9a0556002..927323a27 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/ControlStructure.scala @@ -32,20 +32,50 @@ object ControlStructure { val Label = "CONTROL_STRUCTURE" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - ControlStructureType - * - LineNumber - * - Offset - * - OffsetEnd - * - Order - * - ParserTypeName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ ControlStructureType (String); Cardinality `one` (mandatory with default value ``); The + * `CONTROL_STRUCTURE_TYPE` field indicates which kind of control structure a `CONTROL_STRUCTURE` node represents. The + * available types are the following: BREAK, CONTINUE, DO, WHILE, FOR, GOTO, IF, ELSE, TRY, THROW and SWITCH. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ ParserTypeName (String); Cardinality `one` (mandatory with default value ``); AST node type name emitted by + * parser. */ class ControlStructure(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 11.toShort, seq_4762) + extends StoredNode(graph_4762, 11, seq_4762) with ControlStructureBase with Expression with StaticType[ControlStructureEMT] { @@ -85,1612 +115,3 @@ class ControlStructure(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[ControlStructure] } - -object NewControlStructure { - def apply(): NewControlStructure = new NewControlStructure - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_ControlStructure_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_controlStructureType extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - dstCast(offset) = generated.controlStructureType - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_ControlStructure_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewControlStructure => - dstCast(offset) = generated.parserTypeName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewControlStructure extends NewNode(11.toShort) with ControlStructureBase with ExpressionNew { - override type StoredNodeType = ControlStructure - override def label: String = "CONTROL_STRUCTURE" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewControlStructure.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewControlStructure.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var controlStructureType: String = "": String - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var parserTypeName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def controlStructureType(value: String): this.type = { this.controlStructureType = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 13, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 43, 1) - } - - override def copy: this.type = { - val newInstance = new NewControlStructure - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.controlStructureType = this.controlStructureType - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.parserTypeName = this.parserTypeName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "controlStructureType" - case 5 => "lineNumber" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case 9 => "parserTypeName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.controlStructureType - case 5 => this.lineNumber - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case 9 => this.parserTypeName - case _ => null - } - - override def productPrefix = "NewControlStructure" - override def productArity = 10 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewControlStructure] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala index 53494fc4f..50f36f31f 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Dependency.scala @@ -25,13 +25,18 @@ object Dependency { val Label = "DEPENDENCY" } -/** Node properties: - * - DependencyGroupId - * - Name - * - Version +/** * NODE PROPERTIES: + * + * ▸ DependencyGroupId (String); Cardinality `ZeroOrOne` (optional); The group ID for a dependency + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Version (String); Cardinality `one` (mandatory with default value ``); A version, given as a string. Used, + * for example, in the META_DATA node to indicate which version of the CPG spec this CPG conforms to */ class Dependency(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 12.toShort, seq_4762) + extends StoredNode(graph_4762, 12, seq_4762) with DependencyBase with StaticType[DependencyEMT] { @@ -56,144 +61,3 @@ class Dependency(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Dependency] } - -object NewDependency { - def apply(): NewDependency = new NewDependency - private val outNeighbors: Map[String, Set[String]] = Map() - private val inNeighbors: Map[String, Set[String]] = Map("IMPORTS" -> Set("IMPORT")) - - object InsertionHelpers { - object NewNodeInserter_Dependency_dependencyGroupId extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewDependency => - generated.dependencyGroupId match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Dependency_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewDependency => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Dependency_version extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewDependency => - dstCast(offset) = generated.version - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewDependency extends NewNode(12.toShort) with DependencyBase { - override type StoredNodeType = Dependency - override def label: String = "DEPENDENCY" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewDependency.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewDependency.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var dependencyGroupId: Option[String] = None - var name: String = "": String - var version: String = "": String - def dependencyGroupId(value: Option[String]): this.type = { this.dependencyGroupId = value; this } - def dependencyGroupId(value: String): this.type = { this.dependencyGroupId = Option(value); this } - def name(value: String): this.type = { this.name = value; this } - def version(value: String): this.type = { this.version = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 14, dependencyGroupId.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 50, 1) - } - - override def copy: this.type = { - val newInstance = new NewDependency - newInstance.dependencyGroupId = this.dependencyGroupId - newInstance.name = this.name - newInstance.version = this.version - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "dependencyGroupId" - case 1 => "name" - case 2 => "version" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.dependencyGroupId - case 1 => this.name - case 2 => this.version - case _ => null - } - - override def productPrefix = "NewDependency" - override def productArity = 3 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewDependency] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala index 44f83af2d..1cb203cd6 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/FieldIdentifier.scala @@ -31,19 +31,50 @@ object FieldIdentifier { val Label = "FIELD_IDENTIFIER" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - CanonicalName - * - Code - * - ColumnNumber - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ CanonicalName (String); Cardinality `one` (mandatory with default value ``); This field holds the canonical + * name of a `FIELD_IDENTIFIER`. It is typically identical to the CODE field, but canonicalized according to source + * language semantics. Human readable names are preferable. `FIELD_IDENTIFIER` nodes must share identical + * `CANONICAL_NAME` if and only if they alias, e.g., in C-style unions (if the aliasing relationship is unknown or + * there are partial overlaps, then one must make a reasonable guess, and trade off between false negatives and false + * positives). + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class FieldIdentifier(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 13.toShort, seq_4762) + extends StoredNode(graph_4762, 13, seq_4762) with FieldIdentifierBase with Expression with StaticType[FieldIdentifierEMT] { @@ -81,1581 +112,3 @@ class FieldIdentifier(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[FieldIdentifier] } - -object NewFieldIdentifier { - def apply(): NewFieldIdentifier = new NewFieldIdentifier - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_FieldIdentifier_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_canonicalName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - dstCast(offset) = generated.canonicalName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_FieldIdentifier_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFieldIdentifier => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewFieldIdentifier extends NewNode(13.toShort) with FieldIdentifierBase with ExpressionNew { - override type StoredNodeType = FieldIdentifier - override def label: String = "FIELD_IDENTIFIER" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewFieldIdentifier.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewFieldIdentifier.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var canonicalName: String = "": String - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def canonicalName(value: String): this.type = { this.canonicalName = value; this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 5, 1) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewFieldIdentifier - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.canonicalName = this.canonicalName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "canonicalName" - case 3 => "code" - case 4 => "columnNumber" - case 5 => "lineNumber" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.canonicalName - case 3 => this.code - case 4 => this.columnNumber - case 5 => this.lineNumber - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case _ => null - } - - override def productPrefix = "NewFieldIdentifier" - override def productArity = 9 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewFieldIdentifier] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala index 6c1fc7c69..e178e6080 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/File.scala @@ -31,19 +31,43 @@ object File { val Label = "FILE" } -/** Node properties: - * - Code - * - ColumnNumber - * - Content - * - Hash - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ Content (String); Cardinality `one` (mandatory with default value ``); Certain files, e.g., configuration + * files, may be included in the CPG as-is. For such files, the `CONTENT` field contains the files content. + * + * ▸ Hash (String); Cardinality `ZeroOrOne` (optional); This property contains a hash value in the form of a string. + * Hashes can be used to summarize data, e.g., to summarize the contents of source files or sub graphs. Such summaries + * are useful to determine whether code has already been analyzed in incremental analysis pipelines. This property is + * optional to allow its calculation to be deferred or skipped if the hash is not needed. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class File(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 14.toShort, seq_4762) + extends StoredNode(graph_4762, 14, seq_4762) with FileBase with AstNode with StaticType[FileEMT] { @@ -81,1581 +105,3 @@ class File(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[File] } - -object NewFile { - def apply(): NewFile = new NewFile - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_File_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_content extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - dstCast(offset) = generated.content - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_hash extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - generated.hash match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_File_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFile => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewFile extends NewNode(14.toShort) with FileBase with AstNodeNew { - override type StoredNodeType = File - override def label: String = "FILE" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewFile.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewFile.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var content: String = "": String - var hash: Option[String] = None - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def content(value: String): this.type = { this.content = value; this } - def hash(value: Option[String]): this.type = { this.hash = value; this } - def hash(value: String): this.type = { this.hash = Option(value); this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 12, 1) - interface.countProperty(this, 23, hash.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewFile - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.content = this.content - newInstance.hash = this.hash - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "content" - case 3 => "hash" - case 4 => "lineNumber" - case 5 => "name" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.content - case 3 => this.hash - case 4 => this.lineNumber - case 5 => this.name - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case _ => null - } - - override def productPrefix = "NewFile" - override def productArity = 9 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewFile] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala index 57a667891..bd662f50e 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Finding.scala @@ -27,18 +27,26 @@ object Finding { val Label = "FINDING" } -/** Node properties: - * - EvidenceDescription - * - Anynode - * - KeyValuePair +/** * NODE PROPERTIES: + * + * ▸ EvidenceDescription (String); Cardinality `List` (many); Optional description for nodes in evidence. Used to give + * a hint about the kind of evidence provided by a node. The evidence description and evidence nodes are associated by + * index. + * + * CONTAINED NODES: + * + * ▸ evidence (Anynode); Cardinality `List` (many) + * + * ▸ keyValuePairs (KeyValuePair); Cardinality `List` (many) */ class Finding(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 15.toShort, seq_4762) + extends StoredNode(graph_4762, 15, seq_4762) with FindingBase with StaticType[FindingEMT] { - def evidence: IndexedSeq[StoredNode] = flatgraph.Accessors.getNodePropertyMulti[StoredNode](graph, nodeKind, 51, seq) + def evidence: IndexedSeq[StoredNode] = + flatgraph.Accessors.getNodePropertyMulti[StoredNode](graph, nodeKind = nodeKind, propertyKind = 51, seq = seq) def keyValuePairs: IndexedSeq[KeyValuePair] = - flatgraph.Accessors.getNodePropertyMulti[KeyValuePair](graph, nodeKind, 52, seq) + flatgraph.Accessors.getNodePropertyMulti[KeyValuePair](graph, nodeKind = nodeKind, propertyKind = 52, seq = seq) override def productElementName(n: Int): String = n match { @@ -61,157 +69,3 @@ class Finding(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Finding] } - -object NewFinding { - def apply(): NewFinding = new NewFinding - private val outNeighbors: Map[String, Set[String]] = Map() - private val inNeighbors: Map[String, Set[String]] = Map() - - object InsertionHelpers { - object NewNodeInserter_Finding_evidenceDescription extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFinding => - for (item <- generated.evidenceDescription) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Finding_evidence extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFinding => - for (item <- generated.evidence) { - dstCast(offset) = item match { - case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; - case null => null - } - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Finding_keyValuePairs extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewFinding => - for (item <- generated.keyValuePairs) { - dstCast(offset) = item match { - case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; - case null => null - } - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewFinding extends NewNode(15.toShort) with FindingBase { - override type StoredNodeType = Finding - override def label: String = "FINDING" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewFinding.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewFinding.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var evidence: IndexedSeq[AbstractNode] = ArraySeq.empty - var evidenceDescription: IndexedSeq[String] = ArraySeq.empty - var keyValuePairs: IndexedSeq[KeyValuePairBase] = ArraySeq.empty - def evidence(value: IterableOnce[AbstractNode]): this.type = { this.evidence = value.iterator.to(ArraySeq); this } - def evidenceDescription(value: IterableOnce[String]): this.type = { - this.evidenceDescription = value.iterator.to(ArraySeq); this - } - def keyValuePairs(value: IterableOnce[KeyValuePairBase]): this.type = { - this.keyValuePairs = value.iterator.to(ArraySeq); this - } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 18, evidenceDescription.size) - interface.countProperty(this, 51, evidence.size) - evidence.foreach(interface.visitContainedNode) - interface.countProperty(this, 52, keyValuePairs.size) - keyValuePairs.foreach(interface.visitContainedNode) - } - - override def copy: this.type = { - val newInstance = new NewFinding - newInstance.evidenceDescription = this.evidenceDescription - newInstance.evidence = this.evidence - newInstance.keyValuePairs = this.keyValuePairs - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "evidenceDescription" - case 1 => "evidence" - case 2 => "keyValuePairs" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.evidenceDescription - case 1 => this.evidence - case 2 => this.keyValuePairs - case _ => null - } - - override def productPrefix = "NewFinding" - override def productArity = 3 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewFinding] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala index 4426edff6..50dc4a41b 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Identifier.scala @@ -42,22 +42,58 @@ object Identifier { val Label = "IDENTIFIER" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class Identifier(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 16.toShort, seq_4762) + extends StoredNode(graph_4762, 16, seq_4762) with IdentifierBase with Expression with StaticType[IdentifierEMT] { @@ -101,1680 +137,3 @@ class Identifier(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Identifier] } - -object NewIdentifier { - def apply(): NewIdentifier = new NewIdentifier - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Identifier_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Identifier_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewIdentifier => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewIdentifier extends NewNode(16.toShort) with IdentifierBase with ExpressionNew { - override type StoredNodeType = Identifier - override def label: String = "IDENTIFIER" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewIdentifier.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewIdentifier.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewIdentifier - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "dynamicTypeHintFullName" - case 5 => "lineNumber" - case 6 => "name" - case 7 => "offset" - case 8 => "offsetEnd" - case 9 => "order" - case 10 => "possibleTypes" - case 11 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.dynamicTypeHintFullName - case 5 => this.lineNumber - case 6 => this.name - case 7 => this.offset - case 8 => this.offsetEnd - case 9 => this.order - case 10 => this.possibleTypes - case 11 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewIdentifier" - override def productArity = 12 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewIdentifier] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala index 98659561d..e39588dca 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Import.scala @@ -40,21 +40,52 @@ object Import { val Label = "IMPORT" } -/** Node properties: - * - Code - * - ColumnNumber - * - ExplicitAs - * - ImportedAs - * - ImportedEntity - * - IsExplicit - * - IsWildcard - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ ExplicitAs (Boolean); Cardinality `ZeroOrOne` (optional); Specifies whether the IMPORTED_AS property was + * explicitly present in the code. For languages like Java which do not allow a renaming during import this is always + * false. For e.g. Kotlin it depends on the existence of the "as" keyword. + * + * ▸ ImportedAs (String); Cardinality `ZeroOrOne` (optional); The identifier under which the import can be accessed in + * the importing context. For a Java import this is always identical to the class name. But e.g. for a Kotlin import + * like "import java.nio.ByteBuffer as BBuffer" this would be "BBuffer". This property is ignored if IS_WILDCARD is + * true. + * + * ▸ ImportedEntity (String); Cardinality `ZeroOrOne` (optional); The identifying string of the imported entity. For a + * Java import like "import java.nio.ByteBuffer;" this would be "java.nio.ByteBuffer". + * + * ▸ IsExplicit (Boolean); Cardinality `ZeroOrOne` (optional); Specifies whether this is an explicit import. Most + * languages have implicit default imports of some standard library elements and this flag is used to distinguish those + * from explicit imports found in the code base. + * + * ▸ IsWildcard (Boolean); Cardinality `ZeroOrOne` (optional); Specifies whether this is a wildcard import. For a Java + * import like "import java.nio.*;" IS_WILDCARD would be "true" and IMPORTED_ENTITY would be "java.nio". For wildcard + * imports the IMPORTED_AS property is ignored. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class Import(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 17.toShort, seq_4762) + extends StoredNode(graph_4762, 17, seq_4762) with ImportBase with AstNode with StaticType[ImportEMT] { @@ -96,1663 +127,3 @@ class Import(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Import] } - -object NewImport { - def apply(): NewImport = new NewImport - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Import_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_explicitAs extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Boolean]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.explicitAs match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_importedAs extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.importedAs match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_importedEntity extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.importedEntity match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_isExplicit extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Boolean]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.isExplicit match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_isWildcard extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Boolean]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.isWildcard match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Import_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewImport => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewImport extends NewNode(17.toShort) with ImportBase with AstNodeNew { - override type StoredNodeType = Import - override def label: String = "IMPORT" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewImport.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewImport.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var explicitAs: Option[Boolean] = None - var importedAs: Option[String] = None - var importedEntity: Option[String] = None - var isExplicit: Option[Boolean] = None - var isWildcard: Option[Boolean] = None - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def explicitAs(value: Boolean): this.type = { this.explicitAs = Option(value); this } - def explicitAs(value: Option[Boolean]): this.type = { this.explicitAs = value; this } - def importedAs(value: Option[String]): this.type = { this.importedAs = value; this } - def importedAs(value: String): this.type = { this.importedAs = Option(value); this } - def importedEntity(value: Option[String]): this.type = { this.importedEntity = value; this } - def importedEntity(value: String): this.type = { this.importedEntity = Option(value); this } - def isExplicit(value: Boolean): this.type = { this.isExplicit = Option(value); this } - def isExplicit(value: Option[Boolean]): this.type = { this.isExplicit = value; this } - def isWildcard(value: Boolean): this.type = { this.isWildcard = Option(value); this } - def isWildcard(value: Option[Boolean]): this.type = { this.isWildcard = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 19, explicitAs.size) - interface.countProperty(this, 24, importedAs.size) - interface.countProperty(this, 25, importedEntity.size) - interface.countProperty(this, 28, isExplicit.size) - interface.countProperty(this, 31, isWildcard.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewImport - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.explicitAs = this.explicitAs - newInstance.importedAs = this.importedAs - newInstance.importedEntity = this.importedEntity - newInstance.isExplicit = this.isExplicit - newInstance.isWildcard = this.isWildcard - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "explicitAs" - case 3 => "importedAs" - case 4 => "importedEntity" - case 5 => "isExplicit" - case 6 => "isWildcard" - case 7 => "lineNumber" - case 8 => "offset" - case 9 => "offsetEnd" - case 10 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.explicitAs - case 3 => this.importedAs - case 4 => this.importedEntity - case 5 => this.isExplicit - case 6 => this.isWildcard - case 7 => this.lineNumber - case 8 => this.offset - case 9 => this.offsetEnd - case 10 => this.order - case _ => null - } - - override def productPrefix = "NewImport" - override def productArity = 11 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewImport] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala index 8259cf3d1..6333aff7e 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpLabel.scala @@ -30,18 +30,38 @@ object JumpLabel { val Label = "JUMP_LABEL" } -/** Node properties: - * - Code - * - ColumnNumber - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order - * - ParserTypeName +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ ParserTypeName (String); Cardinality `one` (mandatory with default value ``); AST node type name emitted by + * parser. */ class JumpLabel(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 18.toShort, seq_4762) + extends StoredNode(graph_4762, 18, seq_4762) with JumpLabelBase with AstNode with StaticType[JumpLabelEMT] { @@ -77,1545 +97,3 @@ class JumpLabel(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[JumpLabel] } - -object NewJumpLabel { - def apply(): NewJumpLabel = new NewJumpLabel - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_JumpLabel_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpLabel_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpLabel_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpLabel_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpLabel_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpLabel_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpLabel_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpLabel_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpLabel => - dstCast(offset) = generated.parserTypeName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewJumpLabel extends NewNode(18.toShort) with JumpLabelBase with AstNodeNew { - override type StoredNodeType = JumpLabel - override def label: String = "JUMP_LABEL" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewJumpLabel.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewJumpLabel.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var parserTypeName: String = "": String - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 43, 1) - } - - override def copy: this.type = { - val newInstance = new NewJumpLabel - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.parserTypeName = this.parserTypeName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "lineNumber" - case 3 => "name" - case 4 => "offset" - case 5 => "offsetEnd" - case 6 => "order" - case 7 => "parserTypeName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.lineNumber - case 3 => this.name - case 4 => this.offset - case 5 => this.offsetEnd - case 6 => this.order - case 7 => this.parserTypeName - case _ => null - } - - override def productPrefix = "NewJumpLabel" - override def productArity = 8 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewJumpLabel] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala index c5b732a10..b6195471c 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/JumpTarget.scala @@ -31,19 +31,45 @@ object JumpTarget { val Label = "JUMP_TARGET" } -/** Node properties: - * - ArgumentIndex - * - Code - * - ColumnNumber - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order - * - ParserTypeName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ ParserTypeName (String); Cardinality `one` (mandatory with default value ``); AST node type name emitted by + * parser. */ class JumpTarget(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 19.toShort, seq_4762) + extends StoredNode(graph_4762, 19, seq_4762) with JumpTargetBase with CfgNode with StaticType[JumpTargetEMT] { @@ -81,1576 +107,3 @@ class JumpTarget(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[JumpTarget] } - -object NewJumpTarget { - def apply(): NewJumpTarget = new NewJumpTarget - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_JumpTarget_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_JumpTarget_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewJumpTarget => - dstCast(offset) = generated.parserTypeName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewJumpTarget extends NewNode(19.toShort) with JumpTargetBase with AstNodeNew with CfgNodeNew { - override type StoredNodeType = JumpTarget - override def label: String = "JUMP_TARGET" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewJumpTarget.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewJumpTarget.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var parserTypeName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 43, 1) - } - - override def copy: this.type = { - val newInstance = new NewJumpTarget - newInstance.argumentIndex = this.argumentIndex - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.parserTypeName = this.parserTypeName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "code" - case 2 => "columnNumber" - case 3 => "lineNumber" - case 4 => "name" - case 5 => "offset" - case 6 => "offsetEnd" - case 7 => "order" - case 8 => "parserTypeName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.code - case 2 => this.columnNumber - case 3 => this.lineNumber - case 4 => this.name - case 5 => this.offset - case 6 => this.offsetEnd - case 7 => this.order - case 8 => this.parserTypeName - case _ => null - } - - override def productPrefix = "NewJumpTarget" - override def productArity = 9 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewJumpTarget] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala index 2e164a014..cb65383d2 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/KeyValuePair.scala @@ -24,12 +24,16 @@ object KeyValuePair { val Label = "KEY_VALUE_PAIR" } -/** Node properties: - * - Key - * - Value +/** * NODE PROPERTIES: + * + * ▸ Key (String); Cardinality `one` (mandatory with default value ``); This property denotes a key of a + * key-value pair. + * + * ▸ Value (String); Cardinality `one` (mandatory with default value ``); This property denotes a string value as used + * in a key-value pair. */ class KeyValuePair(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 20.toShort, seq_4762) + extends StoredNode(graph_4762, 20, seq_4762) with KeyValuePairBase with StaticType[KeyValuePairEMT] { @@ -52,108 +56,3 @@ class KeyValuePair(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[KeyValuePair] } - -object NewKeyValuePair { - def apply(): NewKeyValuePair = new NewKeyValuePair - private val outNeighbors: Map[String, Set[String]] = Map() - private val inNeighbors: Map[String, Set[String]] = Map() - - object InsertionHelpers { - object NewNodeInserter_KeyValuePair_key extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewKeyValuePair => - dstCast(offset) = generated.key - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_KeyValuePair_value extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewKeyValuePair => - dstCast(offset) = generated.value - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewKeyValuePair extends NewNode(20.toShort) with KeyValuePairBase { - override type StoredNodeType = KeyValuePair - override def label: String = "KEY_VALUE_PAIR" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewKeyValuePair.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewKeyValuePair.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var key: String = "": String - var value: String = "": String - def key(value: String): this.type = { this.key = value; this } - def value(value: String): this.type = { this.value = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 32, 1) - interface.countProperty(this, 49, 1) - } - - override def copy: this.type = { - val newInstance = new NewKeyValuePair - newInstance.key = this.key - newInstance.value = this.value - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "key" - case 1 => "value" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.key - case 1 => this.value - case _ => null - } - - override def productPrefix = "NewKeyValuePair" - override def productArity = 2 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewKeyValuePair] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala index 20c408d85..50f7a82bd 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Literal.scala @@ -40,21 +40,55 @@ object Literal { val Label = "LITERAL" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - LineNumber - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class Literal(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 21.toShort, seq_4762) + extends StoredNode(graph_4762, 21, seq_4762) with LiteralBase with Expression with StaticType[LiteralEMT] { @@ -96,1649 +130,3 @@ class Literal(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Literal] } - -object NewLiteral { - def apply(): NewLiteral = new NewLiteral - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Literal_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Literal_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLiteral => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewLiteral extends NewNode(21.toShort) with LiteralBase with ExpressionNew { - override type StoredNodeType = Literal - override def label: String = "LITERAL" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewLiteral.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewLiteral.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewLiteral - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "dynamicTypeHintFullName" - case 5 => "lineNumber" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case 9 => "possibleTypes" - case 10 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.dynamicTypeHintFullName - case 5 => this.lineNumber - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case 9 => this.possibleTypes - case 10 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewLiteral" - override def productArity = 11 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewLiteral] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala index 8538f6033..bba98802e 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Local.scala @@ -44,22 +44,55 @@ object Local { val Label = "LOCAL" } -/** Node properties: - * - ClosureBindingId - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - GenericSignature - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ClosureBindingId (String); Cardinality `ZeroOrOne` (optional); Identifier which uniquely describes a + * CLOSURE_BINDING. This property is used to match captured LOCAL nodes with the corresponding CLOSURE_BINDING nodes + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ GenericSignature (String); Cardinality `one` (mandatory with default value ``); This field is experimental. + * It will likely be removed in the future without any notice. It stores type information for generic types and methods + * as well as type information for members and locals where the type either contains a type parameter reference or an + * instantiated type reference. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class Local(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 22.toShort, seq_4762) + extends StoredNode(graph_4762, 22, seq_4762) with LocalBase with AstNode with Declaration @@ -104,1680 +137,3 @@ class Local(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Local] } - -object NewLocal { - def apply(): NewLocal = new NewLocal - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Local_closureBindingId extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - generated.closureBindingId match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - dstCast(offset) = generated.genericSignature - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Local_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewLocal => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewLocal extends NewNode(22.toShort) with LocalBase with AstNodeNew with DeclarationNew { - override type StoredNodeType = Local - override def label: String = "LOCAL" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewLocal.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewLocal.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var closureBindingId: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var genericSignature: String = "": String - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def closureBindingId(value: Option[String]): this.type = { this.closureBindingId = value; this } - def closureBindingId(value: String): this.type = { this.closureBindingId = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def genericSignature(value: String): this.type = { this.genericSignature = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 6, closureBindingId.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 22, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewLocal - newInstance.closureBindingId = this.closureBindingId - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.genericSignature = this.genericSignature - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "closureBindingId" - case 1 => "code" - case 2 => "columnNumber" - case 3 => "dynamicTypeHintFullName" - case 4 => "genericSignature" - case 5 => "lineNumber" - case 6 => "name" - case 7 => "offset" - case 8 => "offsetEnd" - case 9 => "order" - case 10 => "possibleTypes" - case 11 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.closureBindingId - case 1 => this.code - case 2 => this.columnNumber - case 3 => this.dynamicTypeHintFullName - case 4 => this.genericSignature - case 5 => this.lineNumber - case 6 => this.name - case 7 => this.offset - case 8 => this.offsetEnd - case 9 => this.order - case 10 => this.possibleTypes - case 11 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewLocal" - override def productArity = 12 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewLocal] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala index d13a24cf6..e14bc3f51 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Member.scala @@ -46,23 +46,59 @@ object Member { val Label = "MEMBER" } -/** Node properties: - * - AstParentFullName - * - AstParentType - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - GenericSignature - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ AstParentFullName (String); Cardinality `one` (mandatory with default value ``); This field holds the + * FULL_NAME of the AST parent of an entity. + * + * ▸ AstParentType (String); Cardinality `one` (mandatory with default value ``); The type of the AST parent. + * Since this is only used in some parts of the graph, the list does not include all possible parents by intention. + * Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ GenericSignature (String); Cardinality `one` (mandatory with default value ``); This field is experimental. + * It will likely be removed in the future without any notice. It stores type information for generic types and methods + * as well as type information for members and locals where the type either contains a type parameter reference or an + * instantiated type reference. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class Member(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 23.toShort, seq_4762) + extends StoredNode(graph_4762, 23, seq_4762) with MemberBase with AstNode with Declaration @@ -109,1706 +145,3 @@ class Member(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Member] } - -object NewMember { - def apply(): NewMember = new NewMember - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Member_astParentFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - dstCast(offset) = generated.astParentFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_astParentType extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - dstCast(offset) = generated.astParentType - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - dstCast(offset) = generated.genericSignature - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Member_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMember => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewMember extends NewNode(23.toShort) with MemberBase with AstNodeNew with DeclarationNew { - override type StoredNodeType = Member - override def label: String = "MEMBER" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMember.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMember.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var astParentFullName: String = "": String - var astParentType: String = "": String - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var genericSignature: String = "": String - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def astParentFullName(value: String): this.type = { this.astParentFullName = value; this } - def astParentType(value: String): this.type = { this.astParentType = value; this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def genericSignature(value: String): this.type = { this.genericSignature = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 3, 1) - interface.countProperty(this, 4, 1) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 22, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewMember - newInstance.astParentFullName = this.astParentFullName - newInstance.astParentType = this.astParentType - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.genericSignature = this.genericSignature - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "astParentFullName" - case 1 => "astParentType" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "dynamicTypeHintFullName" - case 5 => "genericSignature" - case 6 => "lineNumber" - case 7 => "name" - case 8 => "offset" - case 9 => "offsetEnd" - case 10 => "order" - case 11 => "possibleTypes" - case 12 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.astParentFullName - case 1 => this.astParentType - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.dynamicTypeHintFullName - case 5 => this.genericSignature - case 6 => this.lineNumber - case 7 => this.name - case 8 => this.offset - case 9 => this.offsetEnd - case 10 => this.order - case 11 => this.possibleTypes - case 12 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewMember" - override def productArity = 13 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMember] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala index 9816571fa..4904220c5 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MetaData.scala @@ -33,15 +33,29 @@ object MetaData { val Label = "META_DATA" } -/** Node properties: - * - Hash - * - Language - * - Overlays - * - Root - * - Version +/** * NODE PROPERTIES: + * + * ▸ Hash (String); Cardinality `ZeroOrOne` (optional); This property contains a hash value in the form of a string. + * Hashes can be used to summarize data, e.g., to summarize the contents of source files or sub graphs. Such summaries + * are useful to determine whether code has already been analyzed in incremental analysis pipelines. This property is + * optional to allow its calculation to be deferred or skipped if the hash is not needed. + * + * ▸ Language (String); Cardinality `one` (mandatory with default value ``); This field indicates which CPG + * language frontend generated the CPG. Frontend developers may freely choose a value that describes their frontend so + * long as it is not used by an existing frontend. Reserved values are to date: C, LLVM, GHIDRA, PHP. + * + * ▸ Overlays (String); Cardinality `List` (many); The field contains the names of the overlays applied to this CPG, in + * order of their application. Names are free-form strings, that is, this specification does not dictate them but + * rather requires tool producers and consumers to communicate them between each other. + * + * ▸ Root (String); Cardinality `one` (mandatory with default value ``); The path to the root directory of the + * source/binary this CPG is generated from. + * + * ▸ Version (String); Cardinality `one` (mandatory with default value ``); A version, given as a string. Used, + * for example, in the META_DATA node to indicate which version of the CPG spec this CPG conforms to */ class MetaData(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 24.toShort, seq_4762) + extends StoredNode(graph_4762, 24, seq_4762) with MetaDataBase with StaticType[MetaDataEMT] { @@ -70,208 +84,3 @@ class MetaData(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[MetaData] } - -object NewMetaData { - def apply(): NewMetaData = new NewMetaData - private val outNeighbors: Map[String, Set[String]] = Map() - private val inNeighbors: Map[String, Set[String]] = Map() - - object InsertionHelpers { - object NewNodeInserter_MetaData_hash extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMetaData => - generated.hash match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MetaData_language extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMetaData => - dstCast(offset) = generated.language - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MetaData_overlays extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMetaData => - for (item <- generated.overlays) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MetaData_root extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMetaData => - dstCast(offset) = generated.root - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MetaData_version extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMetaData => - dstCast(offset) = generated.version - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewMetaData extends NewNode(24.toShort) with MetaDataBase { - override type StoredNodeType = MetaData - override def label: String = "META_DATA" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMetaData.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMetaData.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var hash: Option[String] = None - var language: String = "": String - var overlays: IndexedSeq[String] = ArraySeq.empty - var root: String = "": String - var version: String = "": String - def hash(value: Option[String]): this.type = { this.hash = value; this } - def hash(value: String): this.type = { this.hash = Option(value); this } - def language(value: String): this.type = { this.language = value; this } - def overlays(value: IterableOnce[String]): this.type = { this.overlays = value.iterator.to(ArraySeq); this } - def root(value: String): this.type = { this.root = value; this } - def version(value: String): this.type = { this.version = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 23, hash.size) - interface.countProperty(this, 33, 1) - interface.countProperty(this, 42, overlays.size) - interface.countProperty(this, 45, 1) - interface.countProperty(this, 50, 1) - } - - override def copy: this.type = { - val newInstance = new NewMetaData - newInstance.hash = this.hash - newInstance.language = this.language - newInstance.overlays = this.overlays - newInstance.root = this.root - newInstance.version = this.version - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "hash" - case 1 => "language" - case 2 => "overlays" - case 3 => "root" - case 4 => "version" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.hash - case 1 => this.language - case 2 => this.overlays - case 3 => this.root - case 4 => this.version - case _ => null - } - - override def productPrefix = "NewMetaData" - override def productArity = 5 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMetaData] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala index 9c3ac8a58..0a7b3f605 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Method.scala @@ -52,27 +52,78 @@ object Method { val Label = "METHOD" } -/** Node properties: - * - AstParentFullName - * - AstParentType - * - Code - * - ColumnNumber - * - ColumnNumberEnd - * - Filename - * - FullName - * - GenericSignature - * - Hash - * - IsExternal - * - LineNumber - * - LineNumberEnd - * - Name - * - Offset - * - OffsetEnd - * - Order - * - Signature +/** * NODE PROPERTIES: + * + * ▸ AstParentFullName (String); Cardinality `one` (mandatory with default value ``); This field holds the + * FULL_NAME of the AST parent of an entity. + * + * ▸ AstParentType (String); Cardinality `one` (mandatory with default value ``); The type of the AST parent. + * Since this is only used in some parts of the graph, the list does not include all possible parents by intention. + * Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ ColumnNumberEnd (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number at + * which the program construct represented by the node ends. + * + * ▸ Filename (String); Cardinality `one` (mandatory with default value ``); The path of the source file this + * node was generated from, relative to the root path in the meta data node. This field must be set but may be set to + * the value `` to indicate that no source file can be associated with the node, e.g., because the node + * represents an entity known to exist because it is referenced, but for which the file that is is declared in is + * unknown. + * + * ▸ FullName (String); Cardinality `one` (mandatory with default value ``); This is the fully-qualified name of + * an entity, e.g., the fully-qualified name of a method or type. The details of what constitutes a fully-qualified + * name are language specific. This field SHOULD be human readable. + * + * ▸ GenericSignature (String); Cardinality `one` (mandatory with default value ``); This field is experimental. + * It will likely be removed in the future without any notice. It stores type information for generic types and methods + * as well as type information for members and locals where the type either contains a type parameter reference or an + * instantiated type reference. + * + * ▸ Hash (String); Cardinality `ZeroOrOne` (optional); This property contains a hash value in the form of a string. + * Hashes can be used to summarize data, e.g., to summarize the contents of source files or sub graphs. Such summaries + * are useful to determine whether code has already been analyzed in incremental analysis pipelines. This property is + * optional to allow its calculation to be deferred or skipped if the hash is not needed. + * + * ▸ IsExternal (Boolean); Cardinality `one` (mandatory with default value `false`); Indicates that the construct + * (METHOD or TYPE_DECL) is external, that is, it is referenced but not defined in the code (applies both to insular + * parsing and to library functions where we have header files only) + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ LineNumberEnd (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the line number at which + * the program construct represented by the node ends. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ Signature (String); Cardinality `one` (mandatory with default value ``); The method signature encodes the types of + * parameters in a string. The string SHOULD be human readable and suitable for differentiating methods with different + * parameter types sufficiently to allow for resolving of function overloading. The present specification does not + * enforce a strict format for the signature, that is, it can be chosen by the frontend implementor to fit the source + * language. */ class Method(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 25.toShort, seq_4762) + extends StoredNode(graph_4762, 25, seq_4762) with MethodBase with CfgNode with Declaration @@ -127,1839 +178,3 @@ class Method(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Method] } - -object NewMethod { - def apply(): NewMethod = new NewMethod - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Method_astParentFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.astParentFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_astParentType extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.astParentType - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_columnNumberEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - generated.columnNumberEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_filename extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.filename - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_fullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.fullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.genericSignature - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_hash extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - generated.hash match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_isExternal extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Boolean]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.isExternal - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_lineNumberEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - generated.lineNumberEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Method_signature extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethod => - dstCast(offset) = generated.signature - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewMethod extends NewNode(25.toShort) with MethodBase with AstNodeNew with CfgNodeNew with DeclarationNew { - override type StoredNodeType = Method - override def label: String = "METHOD" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethod.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethod.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var astParentFullName: String = "": String - var astParentType: String = "": String - var code: String = "": String - var columnNumber: Option[Int] = None - var columnNumberEnd: Option[Int] = None - var filename: String = "": String - var fullName: String = "": String - var genericSignature: String = "": String - var hash: Option[String] = None - var isExternal: Boolean = false: Boolean - var lineNumber: Option[Int] = None - var lineNumberEnd: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var signature: String = "": String - def astParentFullName(value: String): this.type = { this.astParentFullName = value; this } - def astParentType(value: String): this.type = { this.astParentType = value; this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def columnNumberEnd(value: Int): this.type = { this.columnNumberEnd = Option(value); this } - def columnNumberEnd(value: Option[Int]): this.type = { this.columnNumberEnd = value; this } - def filename(value: String): this.type = { this.filename = value; this } - def fullName(value: String): this.type = { this.fullName = value; this } - def genericSignature(value: String): this.type = { this.genericSignature = value; this } - def hash(value: Option[String]): this.type = { this.hash = value; this } - def hash(value: String): this.type = { this.hash = Option(value); this } - def isExternal(value: Boolean): this.type = { this.isExternal = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def lineNumberEnd(value: Int): this.type = { this.lineNumberEnd = Option(value); this } - def lineNumberEnd(value: Option[Int]): this.type = { this.lineNumberEnd = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def signature(value: String): this.type = { this.signature = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 3, 1) - interface.countProperty(this, 4, 1) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 10, columnNumberEnd.size) - interface.countProperty(this, 20, 1) - interface.countProperty(this, 21, 1) - interface.countProperty(this, 22, 1) - interface.countProperty(this, 23, hash.size) - interface.countProperty(this, 29, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 35, lineNumberEnd.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 46, 1) - } - - override def copy: this.type = { - val newInstance = new NewMethod - newInstance.astParentFullName = this.astParentFullName - newInstance.astParentType = this.astParentType - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.columnNumberEnd = this.columnNumberEnd - newInstance.filename = this.filename - newInstance.fullName = this.fullName - newInstance.genericSignature = this.genericSignature - newInstance.hash = this.hash - newInstance.isExternal = this.isExternal - newInstance.lineNumber = this.lineNumber - newInstance.lineNumberEnd = this.lineNumberEnd - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.signature = this.signature - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "astParentFullName" - case 1 => "astParentType" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "columnNumberEnd" - case 5 => "filename" - case 6 => "fullName" - case 7 => "genericSignature" - case 8 => "hash" - case 9 => "isExternal" - case 10 => "lineNumber" - case 11 => "lineNumberEnd" - case 12 => "name" - case 13 => "offset" - case 14 => "offsetEnd" - case 15 => "order" - case 16 => "signature" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.astParentFullName - case 1 => this.astParentType - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.columnNumberEnd - case 5 => this.filename - case 6 => this.fullName - case 7 => this.genericSignature - case 8 => this.hash - case 9 => this.isExternal - case 10 => this.lineNumber - case 11 => this.lineNumberEnd - case 12 => this.name - case 13 => this.offset - case 14 => this.offsetEnd - case 15 => this.order - case 16 => this.signature - case _ => null - } - - override def productPrefix = "NewMethod" - override def productArity = 17 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethod] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala index 65b153447..3b84ba223 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterIn.scala @@ -52,24 +52,64 @@ object MethodParameterIn { val Label = "METHOD_PARAMETER_IN" } -/** Node properties: - * - ClosureBindingId - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - EvaluationStrategy - * - Index - * - IsVariadic - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ClosureBindingId (String); Cardinality `ZeroOrOne` (optional); Identifier which uniquely describes a + * CLOSURE_BINDING. This property is used to match captured LOCAL nodes with the corresponding CLOSURE_BINDING nodes + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ EvaluationStrategy (String); Cardinality `one` (mandatory with default value ``); For formal method input + * parameters, output parameters, and return parameters, this field holds the evaluation strategy, which is one of the + * following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, 2) `BY_VALUE` indicates that it is + * passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a pointer/reference and it is shared with + * the caller/callee. While a copy of the pointer is made, a copy of the object that it points to is not made. + * + * ▸ Index (Int); Cardinality `one` (mandatory with default value `-1`); Specifies an index, e.g., for a parameter or + * argument. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this + * parameter. + * + * ▸ IsVariadic (Boolean); Cardinality `one` (mandatory with default value `false`); Specifies whether a parameter is + * the variadic argument handling parameter of a variadic method. Only one parameter of a method is allowed to have + * this property set to true. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class MethodParameterIn(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 26.toShort, seq_4762) + extends StoredNode(graph_4762, 26, seq_4762) with MethodParameterInBase with CfgNode with Declaration @@ -118,1747 +158,3 @@ class MethodParameterIn(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[MethodParameterIn] } - -object NewMethodParameterIn { - def apply(): NewMethodParameterIn = new NewMethodParameterIn - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_MethodParameterIn_closureBindingId extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - generated.closureBindingId match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - dstCast(offset) = generated.evaluationStrategy - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_index extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - dstCast(offset) = generated.index - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_isVariadic extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Boolean]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - dstCast(offset) = generated.isVariadic - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterIn_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterIn => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewMethodParameterIn - extends NewNode(26.toShort) - with MethodParameterInBase - with AstNodeNew - with CfgNodeNew - with DeclarationNew { - override type StoredNodeType = MethodParameterIn - override def label: String = "METHOD_PARAMETER_IN" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodParameterIn.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodParameterIn.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var closureBindingId: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var evaluationStrategy: String = "": String - var index: Int = -1: Int - var isVariadic: Boolean = false: Boolean - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def closureBindingId(value: Option[String]): this.type = { this.closureBindingId = value; this } - def closureBindingId(value: String): this.type = { this.closureBindingId = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } - def index(value: Int): this.type = { this.index = value; this } - def isVariadic(value: Boolean): this.type = { this.isVariadic = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 6, closureBindingId.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 17, 1) - interface.countProperty(this, 26, 1) - interface.countProperty(this, 30, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewMethodParameterIn - newInstance.closureBindingId = this.closureBindingId - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.evaluationStrategy = this.evaluationStrategy - newInstance.index = this.index - newInstance.isVariadic = this.isVariadic - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "closureBindingId" - case 1 => "code" - case 2 => "columnNumber" - case 3 => "dynamicTypeHintFullName" - case 4 => "evaluationStrategy" - case 5 => "index" - case 6 => "isVariadic" - case 7 => "lineNumber" - case 8 => "name" - case 9 => "offset" - case 10 => "offsetEnd" - case 11 => "order" - case 12 => "possibleTypes" - case 13 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.closureBindingId - case 1 => this.code - case 2 => this.columnNumber - case 3 => this.dynamicTypeHintFullName - case 4 => this.evaluationStrategy - case 5 => this.index - case 6 => this.isVariadic - case 7 => this.lineNumber - case 8 => this.name - case 9 => this.offset - case 10 => this.offsetEnd - case 11 => this.order - case 12 => this.possibleTypes - case 13 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewMethodParameterIn" - override def productArity = 14 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodParameterIn] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala index 391f618f5..a9be28c74 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodParameterOut.scala @@ -44,21 +44,54 @@ object MethodParameterOut { val Label = "METHOD_PARAMETER_OUT" } -/** Node properties: - * - Code - * - ColumnNumber - * - EvaluationStrategy - * - Index - * - IsVariadic - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ EvaluationStrategy (String); Cardinality `one` (mandatory with default value ``); For formal method input + * parameters, output parameters, and return parameters, this field holds the evaluation strategy, which is one of the + * following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, 2) `BY_VALUE` indicates that it is + * passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a pointer/reference and it is shared with + * the caller/callee. While a copy of the pointer is made, a copy of the object that it points to is not made. + * + * ▸ Index (Int); Cardinality `one` (mandatory with default value `-1`); Specifies an index, e.g., for a parameter or + * argument. Explicit parameters are numbered from 1 to N, while index 0 is reserved for implicit self / this + * parameter. + * + * ▸ IsVariadic (Boolean); Cardinality `one` (mandatory with default value `false`); Specifies whether a parameter is + * the variadic argument handling parameter of a variadic method. Only one parameter of a method is allowed to have + * this property set to true. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class MethodParameterOut(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 27.toShort, seq_4762) + extends StoredNode(graph_4762, 27, seq_4762) with MethodParameterOutBase with CfgNode with Declaration @@ -101,1643 +134,3 @@ class MethodParameterOut(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[MethodParameterOut] } - -object NewMethodParameterOut { - def apply(): NewMethodParameterOut = new NewMethodParameterOut - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_MethodParameterOut_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - dstCast(offset) = generated.evaluationStrategy - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_index extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - dstCast(offset) = generated.index - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_isVariadic extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Boolean]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - dstCast(offset) = generated.isVariadic - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodParameterOut_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodParameterOut => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewMethodParameterOut - extends NewNode(27.toShort) - with MethodParameterOutBase - with AstNodeNew - with CfgNodeNew - with DeclarationNew { - override type StoredNodeType = MethodParameterOut - override def label: String = "METHOD_PARAMETER_OUT" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodParameterOut.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodParameterOut.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var evaluationStrategy: String = "": String - var index: Int = -1: Int - var isVariadic: Boolean = false: Boolean - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var typeFullName: String = "": String - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } - def index(value: Int): this.type = { this.index = value; this } - def isVariadic(value: Boolean): this.type = { this.isVariadic = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 17, 1) - interface.countProperty(this, 26, 1) - interface.countProperty(this, 30, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewMethodParameterOut - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.evaluationStrategy = this.evaluationStrategy - newInstance.index = this.index - newInstance.isVariadic = this.isVariadic - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "evaluationStrategy" - case 3 => "index" - case 4 => "isVariadic" - case 5 => "lineNumber" - case 6 => "name" - case 7 => "offset" - case 8 => "offsetEnd" - case 9 => "order" - case 10 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.evaluationStrategy - case 3 => this.index - case 4 => this.isVariadic - case 5 => this.lineNumber - case 6 => this.name - case 7 => this.offset - case 8 => this.offsetEnd - case 9 => this.order - case 10 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewMethodParameterOut" - override def productArity = 11 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodParameterOut] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala index f94db39c5..93c1f797c 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodRef.scala @@ -42,22 +42,58 @@ object MethodRef { val Label = "METHOD_REF" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - LineNumber - * - MethodFullName - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ MethodFullName (String); Cardinality `one` (mandatory with default value ``); The FULL_NAME of a method. + * Used to link CALL and METHOD nodes. It is required to have exactly one METHOD node for each METHOD_FULL_NAME + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class MethodRef(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 28.toShort, seq_4762) + extends StoredNode(graph_4762, 28, seq_4762) with MethodRefBase with Expression with StaticType[MethodRefEMT] { @@ -101,1680 +137,3 @@ class MethodRef(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[MethodRef] } - -object NewMethodRef { - def apply(): NewMethodRef = new NewMethodRef - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_MethodRef_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_methodFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - dstCast(offset) = generated.methodFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodRef_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodRef => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewMethodRef extends NewNode(28.toShort) with MethodRefBase with ExpressionNew { - override type StoredNodeType = MethodRef - override def label: String = "METHOD_REF" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodRef.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodRef.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var lineNumber: Option[Int] = None - var methodFullName: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def methodFullName(value: String): this.type = { this.methodFullName = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 36, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewMethodRef - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.lineNumber = this.lineNumber - newInstance.methodFullName = this.methodFullName - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "dynamicTypeHintFullName" - case 5 => "lineNumber" - case 6 => "methodFullName" - case 7 => "offset" - case 8 => "offsetEnd" - case 9 => "order" - case 10 => "possibleTypes" - case 11 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.dynamicTypeHintFullName - case 5 => this.lineNumber - case 6 => this.methodFullName - case 7 => this.offset - case 8 => this.offsetEnd - case 9 => this.order - case 10 => this.possibleTypes - case 11 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewMethodRef" - override def productArity = 12 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodRef] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala index b95ccd9fe..07d1ff15c 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/MethodReturn.scala @@ -40,20 +40,50 @@ object MethodReturn { val Label = "METHOD_RETURN" } -/** Node properties: - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - EvaluationStrategy - * - LineNumber - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ EvaluationStrategy (String); Cardinality `one` (mandatory with default value ``); For formal method input + * parameters, output parameters, and return parameters, this field holds the evaluation strategy, which is one of the + * following: 1) `BY_REFERENCE` indicates that the parameter is passed by reference, 2) `BY_VALUE` indicates that it is + * passed by value, that is, a copy is made, 3) `BY_SHARING` the parameter is a pointer/reference and it is shared with + * the caller/callee. While a copy of the pointer is made, a copy of the object that it points to is not made. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class MethodReturn(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 29.toShort, seq_4762) + extends StoredNode(graph_4762, 29, seq_4762) with MethodReturnBase with CfgNode with StaticType[MethodReturnEMT] { @@ -93,1613 +123,3 @@ class MethodReturn(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[MethodReturn] } - -object NewMethodReturn { - def apply(): NewMethodReturn = new NewMethodReturn - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_MethodReturn_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - dstCast(offset) = generated.evaluationStrategy - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_MethodReturn_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewMethodReturn => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewMethodReturn extends NewNode(29.toShort) with MethodReturnBase with CfgNodeNew { - override type StoredNodeType = MethodReturn - override def label: String = "METHOD_RETURN" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodReturn.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewMethodReturn.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var evaluationStrategy: String = "": String - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 17, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewMethodReturn - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.evaluationStrategy = this.evaluationStrategy - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "dynamicTypeHintFullName" - case 3 => "evaluationStrategy" - case 4 => "lineNumber" - case 5 => "offset" - case 6 => "offsetEnd" - case 7 => "order" - case 8 => "possibleTypes" - case 9 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.dynamicTypeHintFullName - case 3 => this.evaluationStrategy - case 4 => this.lineNumber - case 5 => this.offset - case 6 => this.offsetEnd - case 7 => this.order - case 8 => this.possibleTypes - case 9 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewMethodReturn" - override def productArity = 10 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodReturn] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala index f3a10159a..bd8d52bbb 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Modifier.scala @@ -29,17 +29,36 @@ object Modifier { val Label = "MODIFIER" } -/** Node properties: - * - Code - * - ColumnNumber - * - LineNumber - * - ModifierType - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ ModifierType (String); Cardinality `one` (mandatory with default value ``); The modifier type is a + * free-form string. The following are known modifier types: `STATIC`, `PUBLIC`, `PROTECTED`, `PRIVATE`, `ABSTRACT`, + * `NATIVE`, `CONSTRUCTOR`, `VIRTUAL`. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class Modifier(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 30.toShort, seq_4762) + extends StoredNode(graph_4762, 30, seq_4762) with ModifierBase with AstNode with StaticType[ModifierEMT] { @@ -73,1514 +92,3 @@ class Modifier(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Modifier] } - -object NewModifier { - def apply(): NewModifier = new NewModifier - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Modifier_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewModifier => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Modifier_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewModifier => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Modifier_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewModifier => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Modifier_modifierType extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewModifier => - dstCast(offset) = generated.modifierType - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Modifier_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewModifier => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Modifier_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewModifier => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Modifier_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewModifier => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewModifier extends NewNode(30.toShort) with ModifierBase with AstNodeNew { - override type StoredNodeType = Modifier - override def label: String = "MODIFIER" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewModifier.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewModifier.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var modifierType: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def modifierType(value: String): this.type = { this.modifierType = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 37, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewModifier - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.modifierType = this.modifierType - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "lineNumber" - case 3 => "modifierType" - case 4 => "offset" - case 5 => "offsetEnd" - case 6 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.lineNumber - case 3 => this.modifierType - case 4 => this.offset - case 5 => this.offsetEnd - case 6 => this.order - case _ => null - } - - override def productPrefix = "NewModifier" - override def productArity = 7 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewModifier] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala index 10dce566d..36083bba2 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Namespace.scala @@ -29,17 +29,35 @@ object Namespace { val Label = "NAMESPACE" } -/** Node properties: - * - Code - * - ColumnNumber - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class Namespace(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 31.toShort, seq_4762) + extends StoredNode(graph_4762, 31, seq_4762) with NamespaceBase with AstNode with StaticType[NamespaceEMT] { @@ -73,1514 +91,3 @@ class Namespace(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Namespace] } - -object NewNamespace { - def apply(): NewNamespace = new NewNamespace - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Namespace_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespace => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Namespace_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespace => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Namespace_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespace => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Namespace_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespace => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Namespace_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespace => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Namespace_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespace => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Namespace_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespace => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewNamespace extends NewNode(31.toShort) with NamespaceBase with AstNodeNew { - override type StoredNodeType = Namespace - override def label: String = "NAMESPACE" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewNamespace.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewNamespace.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewNamespace - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "lineNumber" - case 3 => "name" - case 4 => "offset" - case 5 => "offsetEnd" - case 6 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.lineNumber - case 3 => this.name - case 4 => this.offset - case 5 => this.offsetEnd - case 6 => this.order - case _ => null - } - - override def productPrefix = "NewNamespace" - override def productArity = 7 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewNamespace] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala index ac11e8f37..a425de006 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NamespaceBlock.scala @@ -31,19 +31,45 @@ object NamespaceBlock { val Label = "NAMESPACE_BLOCK" } -/** Node properties: - * - Code - * - ColumnNumber - * - Filename - * - FullName - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ Filename (String); Cardinality `one` (mandatory with default value ``); The path of the source file this + * node was generated from, relative to the root path in the meta data node. This field must be set but may be set to + * the value `` to indicate that no source file can be associated with the node, e.g., because the node + * represents an entity known to exist because it is referenced, but for which the file that is is declared in is + * unknown. + * + * ▸ FullName (String); Cardinality `one` (mandatory with default value ``); This is the fully-qualified name of + * an entity, e.g., the fully-qualified name of a method or type. The details of what constitutes a fully-qualified + * name are language specific. This field SHOULD be human readable. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class NamespaceBlock(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 32.toShort, seq_4762) + extends StoredNode(graph_4762, 32, seq_4762) with NamespaceBlockBase with AstNode with StaticType[NamespaceBlockEMT] { @@ -81,1576 +107,3 @@ class NamespaceBlock(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NamespaceBlock] } - -object NewNamespaceBlock { - def apply(): NewNamespaceBlock = new NewNamespaceBlock - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_NamespaceBlock_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_filename extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - dstCast(offset) = generated.filename - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_fullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - dstCast(offset) = generated.fullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_NamespaceBlock_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewNamespaceBlock => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewNamespaceBlock extends NewNode(32.toShort) with NamespaceBlockBase with AstNodeNew { - override type StoredNodeType = NamespaceBlock - override def label: String = "NAMESPACE_BLOCK" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewNamespaceBlock.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewNamespaceBlock.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var filename: String = "": String - var fullName: String = "": String - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def filename(value: String): this.type = { this.filename = value; this } - def fullName(value: String): this.type = { this.fullName = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 20, 1) - interface.countProperty(this, 21, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewNamespaceBlock - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.filename = this.filename - newInstance.fullName = this.fullName - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "filename" - case 3 => "fullName" - case 4 => "lineNumber" - case 5 => "name" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.filename - case 3 => this.fullName - case 4 => this.lineNumber - case 5 => this.name - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case _ => null - } - - override def productPrefix = "NewNamespaceBlock" - override def productArity = 9 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewNamespaceBlock] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotation.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotation.scala new file mode 100644 index 000000000..f6a917911 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotation.scala @@ -0,0 +1,1614 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewAnnotation { + def apply(): NewAnnotation = new NewAnnotation + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Annotation_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_fullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + dstCast(offset) = generated.fullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Annotation_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotation => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewAnnotation extends NewNode(nodeKind = 0) with AnnotationBase with ExpressionNew { + override type StoredNodeType = Annotation + override def label: String = "ANNOTATION" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotation.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotation.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var fullName: String = "": String + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def fullName(value: String): this.type = { this.fullName = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 21, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewAnnotation + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.fullName = this.fullName + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "fullName" + case 5 => "lineNumber" + case 6 => "name" + case 7 => "offset" + case 8 => "offsetEnd" + case 9 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.fullName + case 5 => this.lineNumber + case 6 => this.name + case 7 => this.offset + case 8 => this.offsetEnd + case 9 => this.order + case _ => null + } + + override def productPrefix = "NewAnnotation" + override def productArity = 10 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotation] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationLiteral.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationLiteral.scala new file mode 100644 index 000000000..8921e0693 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationLiteral.scala @@ -0,0 +1,1583 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewAnnotationLiteral { + def apply(): NewAnnotationLiteral = new NewAnnotationLiteral + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_AnnotationLiteral_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationLiteral_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationLiteral => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewAnnotationLiteral extends NewNode(nodeKind = 1) with AnnotationLiteralBase with ExpressionNew { + override type StoredNodeType = AnnotationLiteral + override def label: String = "ANNOTATION_LITERAL" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotationLiteral.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotationLiteral.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewAnnotationLiteral + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "lineNumber" + case 5 => "name" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.lineNumber + case 5 => this.name + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case _ => null + } + + override def productPrefix = "NewAnnotationLiteral" + override def productArity = 9 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotationLiteral] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameter.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameter.scala new file mode 100644 index 000000000..3a35d696f --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameter.scala @@ -0,0 +1,1485 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewAnnotationParameter { + def apply(): NewAnnotationParameter = new NewAnnotationParameter + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_AnnotationParameter_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameter => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameter_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameter => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameter_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameter => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameter_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameter => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameter_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameter => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameter_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameter => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewAnnotationParameter extends NewNode(nodeKind = 2) with AnnotationParameterBase with AstNodeNew { + override type StoredNodeType = AnnotationParameter + override def label: String = "ANNOTATION_PARAMETER" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotationParameter.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotationParameter.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewAnnotationParameter + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "lineNumber" + case 3 => "offset" + case 4 => "offsetEnd" + case 5 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.lineNumber + case 3 => this.offset + case 4 => this.offsetEnd + case 5 => this.order + case _ => null + } + + override def productPrefix = "NewAnnotationParameter" + override def productArity = 6 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotationParameter] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameterAssign.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameterAssign.scala new file mode 100644 index 000000000..d7bcf7e3a --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewAnnotationParameterAssign.scala @@ -0,0 +1,1485 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewAnnotationParameterAssign { + def apply(): NewAnnotationParameterAssign = new NewAnnotationParameterAssign + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_AnnotationParameterAssign_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameterAssign => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameterAssign_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameterAssign => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameterAssign_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameterAssign => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameterAssign_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameterAssign => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameterAssign_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameterAssign => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_AnnotationParameterAssign_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewAnnotationParameterAssign => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewAnnotationParameterAssign extends NewNode(nodeKind = 3) with AnnotationParameterAssignBase with AstNodeNew { + override type StoredNodeType = AnnotationParameterAssign + override def label: String = "ANNOTATION_PARAMETER_ASSIGN" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotationParameterAssign.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewAnnotationParameterAssign.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewAnnotationParameterAssign + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "lineNumber" + case 3 => "offset" + case 4 => "offsetEnd" + case 5 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.lineNumber + case 3 => this.offset + case 4 => this.offsetEnd + case 5 => this.order + case _ => null + } + + override def productPrefix = "NewAnnotationParameterAssign" + override def productArity = 6 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewAnnotationParameterAssign] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewArrayInitializer.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewArrayInitializer.scala new file mode 100644 index 000000000..4f378f7e7 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewArrayInitializer.scala @@ -0,0 +1,1552 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewArrayInitializer { + def apply(): NewArrayInitializer = new NewArrayInitializer + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_ArrayInitializer_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ArrayInitializer_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ArrayInitializer_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ArrayInitializer_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ArrayInitializer_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ArrayInitializer_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ArrayInitializer_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ArrayInitializer_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewArrayInitializer => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewArrayInitializer extends NewNode(nodeKind = 4) with ArrayInitializerBase with AstNodeNew with ExpressionNew { + override type StoredNodeType = ArrayInitializer + override def label: String = "ARRAY_INITIALIZER" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewArrayInitializer.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewArrayInitializer.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewArrayInitializer + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "lineNumber" + case 5 => "offset" + case 6 => "offsetEnd" + case 7 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.lineNumber + case 5 => this.offset + case 6 => this.offsetEnd + case 7 => this.order + case _ => null + } + + override def productPrefix = "NewArrayInitializer" + override def productArity = 8 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewArrayInitializer] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBinding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBinding.scala new file mode 100644 index 000000000..40c9a221c --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBinding.scala @@ -0,0 +1,141 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewBinding { + def apply(): NewBinding = new NewBinding + private val outNeighbors: Map[String, Set[String]] = Map("REF" -> Set("METHOD")) + private val inNeighbors: Map[String, Set[String]] = Map("BINDS" -> Set("TYPE_DECL")) + + object InsertionHelpers { + object NewNodeInserter_Binding_methodFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBinding => + dstCast(offset) = generated.methodFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Binding_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBinding => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Binding_signature extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBinding => + dstCast(offset) = generated.signature + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewBinding extends NewNode(nodeKind = 5) with BindingBase { + override type StoredNodeType = Binding + override def label: String = "BINDING" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewBinding.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewBinding.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var methodFullName: String = "": String + var name: String = "": String + var signature: String = "": String + def methodFullName(value: String): this.type = { this.methodFullName = value; this } + def name(value: String): this.type = { this.name = value; this } + def signature(value: String): this.type = { this.signature = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 36, 1) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 46, 1) + } + + override def copy: this.type = { + val newInstance = new NewBinding + newInstance.methodFullName = this.methodFullName + newInstance.name = this.name + newInstance.signature = this.signature + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "methodFullName" + case 1 => "name" + case 2 => "signature" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.methodFullName + case 1 => this.name + case 2 => this.signature + case _ => null + } + + override def productPrefix = "NewBinding" + override def productArity = 3 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewBinding] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBlock.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBlock.scala new file mode 100644 index 000000000..6aa5576af --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewBlock.scala @@ -0,0 +1,1651 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewBlock { + def apply(): NewBlock = new NewBlock + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Block_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Block_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewBlock => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewBlock extends NewNode(nodeKind = 6) with BlockBase with ExpressionNew { + override type StoredNodeType = Block + override def label: String = "BLOCK" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewBlock.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewBlock.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewBlock + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "dynamicTypeHintFullName" + case 5 => "lineNumber" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case 9 => "possibleTypes" + case 10 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.dynamicTypeHintFullName + case 5 => this.lineNumber + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case 9 => this.possibleTypes + case 10 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewBlock" + override def productArity = 11 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewBlock] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewCall.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewCall.scala new file mode 100644 index 000000000..1c99a87c4 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewCall.scala @@ -0,0 +1,1775 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewCall { + def apply(): NewCall = new NewCall + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Call_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_dispatchType extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.dispatchType + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_methodFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.methodFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_signature extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.signature + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Call_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewCall => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewCall extends NewNode(nodeKind = 7) with CallBase with CallReprNew with ExpressionNew { + override type StoredNodeType = Call + override def label: String = "CALL" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewCall.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewCall.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dispatchType: String = "": String + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var lineNumber: Option[Int] = None + var methodFullName: String = "": String + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var signature: String = "": String + var typeFullName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dispatchType(value: String): this.type = { this.dispatchType = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def methodFullName(value: String): this.type = { this.methodFullName = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def signature(value: String): this.type = { this.signature = value; this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 15, 1) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 36, 1) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 46, 1) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewCall + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dispatchType = this.dispatchType + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.lineNumber = this.lineNumber + newInstance.methodFullName = this.methodFullName + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.signature = this.signature + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "dispatchType" + case 5 => "dynamicTypeHintFullName" + case 6 => "lineNumber" + case 7 => "methodFullName" + case 8 => "name" + case 9 => "offset" + case 10 => "offsetEnd" + case 11 => "order" + case 12 => "possibleTypes" + case 13 => "signature" + case 14 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.dispatchType + case 5 => this.dynamicTypeHintFullName + case 6 => this.lineNumber + case 7 => this.methodFullName + case 8 => this.name + case 9 => this.offset + case 10 => this.offsetEnd + case 11 => this.order + case 12 => this.possibleTypes + case 13 => this.signature + case 14 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewCall" + override def productArity = 15 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewCall] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewClosureBinding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewClosureBinding.scala new file mode 100644 index 000000000..52b2fccc7 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewClosureBinding.scala @@ -0,0 +1,152 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewClosureBinding { + def apply(): NewClosureBinding = new NewClosureBinding + private val outNeighbors: Map[String, Set[String]] = Map("REF" -> Set("LOCAL", "METHOD_PARAMETER_IN")) + private val inNeighbors: Map[String, Set[String]] = + Map("CAPTURE" -> Set("METHOD_REF", "TYPE_REF"), "CAPTURED_BY" -> Set("LOCAL", "METHOD_PARAMETER_IN")) + + object InsertionHelpers { + object NewNodeInserter_ClosureBinding_closureBindingId extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewClosureBinding => + generated.closureBindingId match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ClosureBinding_closureOriginalName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewClosureBinding => + generated.closureOriginalName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ClosureBinding_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewClosureBinding => + dstCast(offset) = generated.evaluationStrategy + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewClosureBinding extends NewNode(nodeKind = 8) with ClosureBindingBase { + override type StoredNodeType = ClosureBinding + override def label: String = "CLOSURE_BINDING" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewClosureBinding.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewClosureBinding.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var closureBindingId: Option[String] = None + var closureOriginalName: Option[String] = None + var evaluationStrategy: String = "": String + def closureBindingId(value: Option[String]): this.type = { this.closureBindingId = value; this } + def closureBindingId(value: String): this.type = { this.closureBindingId = Option(value); this } + def closureOriginalName(value: Option[String]): this.type = { this.closureOriginalName = value; this } + def closureOriginalName(value: String): this.type = { this.closureOriginalName = Option(value); this } + def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 6, closureBindingId.size) + interface.countProperty(this, 7, closureOriginalName.size) + interface.countProperty(this, 17, 1) + } + + override def copy: this.type = { + val newInstance = new NewClosureBinding + newInstance.closureBindingId = this.closureBindingId + newInstance.closureOriginalName = this.closureOriginalName + newInstance.evaluationStrategy = this.evaluationStrategy + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "closureBindingId" + case 1 => "closureOriginalName" + case 2 => "evaluationStrategy" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.closureBindingId + case 1 => this.closureOriginalName + case 2 => this.evaluationStrategy + case _ => null + } + + override def productPrefix = "NewClosureBinding" + override def productArity = 3 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewClosureBinding] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewComment.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewComment.scala new file mode 100644 index 000000000..b81d39904 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewComment.scala @@ -0,0 +1,1516 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewComment { + def apply(): NewComment = new NewComment + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Comment_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewComment => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Comment_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewComment => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Comment_filename extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewComment => + dstCast(offset) = generated.filename + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Comment_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewComment => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Comment_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewComment => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Comment_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewComment => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Comment_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewComment => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewComment extends NewNode(nodeKind = 9) with CommentBase with AstNodeNew { + override type StoredNodeType = Comment + override def label: String = "COMMENT" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewComment.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewComment.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var filename: String = "": String + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def filename(value: String): this.type = { this.filename = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 20, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewComment + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.filename = this.filename + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "filename" + case 3 => "lineNumber" + case 4 => "offset" + case 5 => "offsetEnd" + case 6 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.filename + case 3 => this.lineNumber + case 4 => this.offset + case 5 => this.offsetEnd + case 6 => this.order + case _ => null + } + + override def productPrefix = "NewComment" + override def productArity = 7 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewComment] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewConfigFile.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewConfigFile.scala new file mode 100644 index 000000000..a999b03ed --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewConfigFile.scala @@ -0,0 +1,110 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewConfigFile { + def apply(): NewConfigFile = new NewConfigFile + private val outNeighbors: Map[String, Set[String]] = Map() + private val inNeighbors: Map[String, Set[String]] = Map() + + object InsertionHelpers { + object NewNodeInserter_ConfigFile_content extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewConfigFile => + dstCast(offset) = generated.content + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ConfigFile_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewConfigFile => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewConfigFile extends NewNode(nodeKind = 10) with ConfigFileBase { + override type StoredNodeType = ConfigFile + override def label: String = "CONFIG_FILE" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewConfigFile.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewConfigFile.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var content: String = "": String + var name: String = "": String + def content(value: String): this.type = { this.content = value; this } + def name(value: String): this.type = { this.name = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 12, 1) + interface.countProperty(this, 38, 1) + } + + override def copy: this.type = { + val newInstance = new NewConfigFile + newInstance.content = this.content + newInstance.name = this.name + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "content" + case 1 => "name" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.content + case 1 => this.name + case _ => null + } + + override def productPrefix = "NewConfigFile" + override def productArity = 2 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewConfigFile] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewControlStructure.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewControlStructure.scala new file mode 100644 index 000000000..0ac72d233 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewControlStructure.scala @@ -0,0 +1,1614 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewControlStructure { + def apply(): NewControlStructure = new NewControlStructure + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_ControlStructure_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_controlStructureType extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + dstCast(offset) = generated.controlStructureType + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_ControlStructure_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewControlStructure => + dstCast(offset) = generated.parserTypeName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewControlStructure extends NewNode(nodeKind = 11) with ControlStructureBase with ExpressionNew { + override type StoredNodeType = ControlStructure + override def label: String = "CONTROL_STRUCTURE" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewControlStructure.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewControlStructure.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var controlStructureType: String = "": String + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var parserTypeName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def controlStructureType(value: String): this.type = { this.controlStructureType = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 13, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 43, 1) + } + + override def copy: this.type = { + val newInstance = new NewControlStructure + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.controlStructureType = this.controlStructureType + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.parserTypeName = this.parserTypeName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "controlStructureType" + case 5 => "lineNumber" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case 9 => "parserTypeName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.controlStructureType + case 5 => this.lineNumber + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case 9 => this.parserTypeName + case _ => null + } + + override def productPrefix = "NewControlStructure" + override def productArity = 10 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewControlStructure] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewDependency.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewDependency.scala new file mode 100644 index 000000000..8db1d127d --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewDependency.scala @@ -0,0 +1,146 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewDependency { + def apply(): NewDependency = new NewDependency + private val outNeighbors: Map[String, Set[String]] = Map() + private val inNeighbors: Map[String, Set[String]] = Map("IMPORTS" -> Set("IMPORT")) + + object InsertionHelpers { + object NewNodeInserter_Dependency_dependencyGroupId extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewDependency => + generated.dependencyGroupId match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Dependency_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewDependency => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Dependency_version extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewDependency => + dstCast(offset) = generated.version + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewDependency extends NewNode(nodeKind = 12) with DependencyBase { + override type StoredNodeType = Dependency + override def label: String = "DEPENDENCY" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewDependency.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewDependency.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var dependencyGroupId: Option[String] = None + var name: String = "": String + var version: String = "": String + def dependencyGroupId(value: Option[String]): this.type = { this.dependencyGroupId = value; this } + def dependencyGroupId(value: String): this.type = { this.dependencyGroupId = Option(value); this } + def name(value: String): this.type = { this.name = value; this } + def version(value: String): this.type = { this.version = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 14, dependencyGroupId.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 50, 1) + } + + override def copy: this.type = { + val newInstance = new NewDependency + newInstance.dependencyGroupId = this.dependencyGroupId + newInstance.name = this.name + newInstance.version = this.version + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "dependencyGroupId" + case 1 => "name" + case 2 => "version" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.dependencyGroupId + case 1 => this.name + case 2 => this.version + case _ => null + } + + override def productPrefix = "NewDependency" + override def productArity = 3 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewDependency] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFieldIdentifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFieldIdentifier.scala new file mode 100644 index 000000000..521aafd9a --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFieldIdentifier.scala @@ -0,0 +1,1583 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewFieldIdentifier { + def apply(): NewFieldIdentifier = new NewFieldIdentifier + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_FieldIdentifier_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_canonicalName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + dstCast(offset) = generated.canonicalName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_FieldIdentifier_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFieldIdentifier => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewFieldIdentifier extends NewNode(nodeKind = 13) with FieldIdentifierBase with ExpressionNew { + override type StoredNodeType = FieldIdentifier + override def label: String = "FIELD_IDENTIFIER" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewFieldIdentifier.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewFieldIdentifier.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var canonicalName: String = "": String + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def canonicalName(value: String): this.type = { this.canonicalName = value; this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 5, 1) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewFieldIdentifier + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.canonicalName = this.canonicalName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "canonicalName" + case 3 => "code" + case 4 => "columnNumber" + case 5 => "lineNumber" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.canonicalName + case 3 => this.code + case 4 => this.columnNumber + case 5 => this.lineNumber + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case _ => null + } + + override def productPrefix = "NewFieldIdentifier" + override def productArity = 9 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewFieldIdentifier] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFile.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFile.scala new file mode 100644 index 000000000..6425a164f --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFile.scala @@ -0,0 +1,1583 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewFile { + def apply(): NewFile = new NewFile + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_File_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_content extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + dstCast(offset) = generated.content + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_hash extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + generated.hash match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_File_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFile => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewFile extends NewNode(nodeKind = 14) with FileBase with AstNodeNew { + override type StoredNodeType = File + override def label: String = "FILE" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewFile.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewFile.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var content: String = "": String + var hash: Option[String] = None + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def content(value: String): this.type = { this.content = value; this } + def hash(value: Option[String]): this.type = { this.hash = value; this } + def hash(value: String): this.type = { this.hash = Option(value); this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 12, 1) + interface.countProperty(this, 23, hash.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewFile + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.content = this.content + newInstance.hash = this.hash + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "content" + case 3 => "hash" + case 4 => "lineNumber" + case 5 => "name" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.content + case 3 => this.hash + case 4 => this.lineNumber + case 5 => this.name + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case _ => null + } + + override def productPrefix = "NewFile" + override def productArity = 9 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewFile] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFinding.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFinding.scala new file mode 100644 index 000000000..4c1bd87d4 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewFinding.scala @@ -0,0 +1,159 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewFinding { + def apply(): NewFinding = new NewFinding + private val outNeighbors: Map[String, Set[String]] = Map() + private val inNeighbors: Map[String, Set[String]] = Map() + + object InsertionHelpers { + object NewNodeInserter_Finding_evidenceDescription extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFinding => + for (item <- generated.evidenceDescription) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Finding_evidence extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFinding => + for (item <- generated.evidence) { + dstCast(offset) = item match { + case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; + case null => null + } + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Finding_keyValuePairs extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewFinding => + for (item <- generated.keyValuePairs) { + dstCast(offset) = item match { + case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; + case null => null + } + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewFinding extends NewNode(nodeKind = 15) with FindingBase { + override type StoredNodeType = Finding + override def label: String = "FINDING" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewFinding.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewFinding.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var evidence: IndexedSeq[AbstractNode] = ArraySeq.empty + var evidenceDescription: IndexedSeq[String] = ArraySeq.empty + var keyValuePairs: IndexedSeq[KeyValuePairBase] = ArraySeq.empty + def evidence(value: IterableOnce[AbstractNode]): this.type = { this.evidence = value.iterator.to(ArraySeq); this } + def evidenceDescription(value: IterableOnce[String]): this.type = { + this.evidenceDescription = value.iterator.to(ArraySeq); this + } + def keyValuePairs(value: IterableOnce[KeyValuePairBase]): this.type = { + this.keyValuePairs = value.iterator.to(ArraySeq); this + } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 18, evidenceDescription.size) + interface.countProperty(this, 51, evidence.size) + evidence.foreach(interface.visitContainedNode) + interface.countProperty(this, 52, keyValuePairs.size) + keyValuePairs.foreach(interface.visitContainedNode) + } + + override def copy: this.type = { + val newInstance = new NewFinding + newInstance.evidenceDescription = this.evidenceDescription + newInstance.evidence = this.evidence + newInstance.keyValuePairs = this.keyValuePairs + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "evidenceDescription" + case 1 => "evidence" + case 2 => "keyValuePairs" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.evidenceDescription + case 1 => this.evidence + case 2 => this.keyValuePairs + case _ => null + } + + override def productPrefix = "NewFinding" + override def productArity = 3 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewFinding] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewIdentifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewIdentifier.scala new file mode 100644 index 000000000..76c3ee47e --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewIdentifier.scala @@ -0,0 +1,1682 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewIdentifier { + def apply(): NewIdentifier = new NewIdentifier + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Identifier_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Identifier_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewIdentifier => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewIdentifier extends NewNode(nodeKind = 16) with IdentifierBase with ExpressionNew { + override type StoredNodeType = Identifier + override def label: String = "IDENTIFIER" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewIdentifier.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewIdentifier.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewIdentifier + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "dynamicTypeHintFullName" + case 5 => "lineNumber" + case 6 => "name" + case 7 => "offset" + case 8 => "offsetEnd" + case 9 => "order" + case 10 => "possibleTypes" + case 11 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.dynamicTypeHintFullName + case 5 => this.lineNumber + case 6 => this.name + case 7 => this.offset + case 8 => this.offsetEnd + case 9 => this.order + case 10 => this.possibleTypes + case 11 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewIdentifier" + override def productArity = 12 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewIdentifier] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewImport.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewImport.scala new file mode 100644 index 000000000..61521e81e --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewImport.scala @@ -0,0 +1,1665 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewImport { + def apply(): NewImport = new NewImport + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Import_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_explicitAs extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Boolean]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.explicitAs match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_importedAs extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.importedAs match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_importedEntity extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.importedEntity match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_isExplicit extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Boolean]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.isExplicit match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_isWildcard extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Boolean]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.isWildcard match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Import_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewImport => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewImport extends NewNode(nodeKind = 17) with ImportBase with AstNodeNew { + override type StoredNodeType = Import + override def label: String = "IMPORT" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewImport.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewImport.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var explicitAs: Option[Boolean] = None + var importedAs: Option[String] = None + var importedEntity: Option[String] = None + var isExplicit: Option[Boolean] = None + var isWildcard: Option[Boolean] = None + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def explicitAs(value: Boolean): this.type = { this.explicitAs = Option(value); this } + def explicitAs(value: Option[Boolean]): this.type = { this.explicitAs = value; this } + def importedAs(value: Option[String]): this.type = { this.importedAs = value; this } + def importedAs(value: String): this.type = { this.importedAs = Option(value); this } + def importedEntity(value: Option[String]): this.type = { this.importedEntity = value; this } + def importedEntity(value: String): this.type = { this.importedEntity = Option(value); this } + def isExplicit(value: Boolean): this.type = { this.isExplicit = Option(value); this } + def isExplicit(value: Option[Boolean]): this.type = { this.isExplicit = value; this } + def isWildcard(value: Boolean): this.type = { this.isWildcard = Option(value); this } + def isWildcard(value: Option[Boolean]): this.type = { this.isWildcard = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 19, explicitAs.size) + interface.countProperty(this, 24, importedAs.size) + interface.countProperty(this, 25, importedEntity.size) + interface.countProperty(this, 28, isExplicit.size) + interface.countProperty(this, 31, isWildcard.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewImport + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.explicitAs = this.explicitAs + newInstance.importedAs = this.importedAs + newInstance.importedEntity = this.importedEntity + newInstance.isExplicit = this.isExplicit + newInstance.isWildcard = this.isWildcard + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "explicitAs" + case 3 => "importedAs" + case 4 => "importedEntity" + case 5 => "isExplicit" + case 6 => "isWildcard" + case 7 => "lineNumber" + case 8 => "offset" + case 9 => "offsetEnd" + case 10 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.explicitAs + case 3 => this.importedAs + case 4 => this.importedEntity + case 5 => this.isExplicit + case 6 => this.isWildcard + case 7 => this.lineNumber + case 8 => this.offset + case 9 => this.offsetEnd + case 10 => this.order + case _ => null + } + + override def productPrefix = "NewImport" + override def productArity = 11 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewImport] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpLabel.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpLabel.scala new file mode 100644 index 000000000..fef624088 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpLabel.scala @@ -0,0 +1,1547 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewJumpLabel { + def apply(): NewJumpLabel = new NewJumpLabel + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_JumpLabel_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpLabel_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpLabel_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpLabel_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpLabel_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpLabel_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpLabel_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpLabel_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpLabel => + dstCast(offset) = generated.parserTypeName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewJumpLabel extends NewNode(nodeKind = 18) with JumpLabelBase with AstNodeNew { + override type StoredNodeType = JumpLabel + override def label: String = "JUMP_LABEL" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewJumpLabel.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewJumpLabel.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var parserTypeName: String = "": String + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 43, 1) + } + + override def copy: this.type = { + val newInstance = new NewJumpLabel + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.parserTypeName = this.parserTypeName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "lineNumber" + case 3 => "name" + case 4 => "offset" + case 5 => "offsetEnd" + case 6 => "order" + case 7 => "parserTypeName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.lineNumber + case 3 => this.name + case 4 => this.offset + case 5 => this.offsetEnd + case 6 => this.order + case 7 => this.parserTypeName + case _ => null + } + + override def productPrefix = "NewJumpLabel" + override def productArity = 8 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewJumpLabel] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpTarget.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpTarget.scala new file mode 100644 index 000000000..6f89a0b96 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewJumpTarget.scala @@ -0,0 +1,1578 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewJumpTarget { + def apply(): NewJumpTarget = new NewJumpTarget + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_JumpTarget_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_JumpTarget_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewJumpTarget => + dstCast(offset) = generated.parserTypeName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewJumpTarget extends NewNode(nodeKind = 19) with JumpTargetBase with AstNodeNew with CfgNodeNew { + override type StoredNodeType = JumpTarget + override def label: String = "JUMP_TARGET" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewJumpTarget.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewJumpTarget.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var parserTypeName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 43, 1) + } + + override def copy: this.type = { + val newInstance = new NewJumpTarget + newInstance.argumentIndex = this.argumentIndex + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.parserTypeName = this.parserTypeName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "code" + case 2 => "columnNumber" + case 3 => "lineNumber" + case 4 => "name" + case 5 => "offset" + case 6 => "offsetEnd" + case 7 => "order" + case 8 => "parserTypeName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.code + case 2 => this.columnNumber + case 3 => this.lineNumber + case 4 => this.name + case 5 => this.offset + case 6 => this.offsetEnd + case 7 => this.order + case 8 => this.parserTypeName + case _ => null + } + + override def productPrefix = "NewJumpTarget" + override def productArity = 9 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewJumpTarget] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewKeyValuePair.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewKeyValuePair.scala new file mode 100644 index 000000000..899b9caa4 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewKeyValuePair.scala @@ -0,0 +1,110 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewKeyValuePair { + def apply(): NewKeyValuePair = new NewKeyValuePair + private val outNeighbors: Map[String, Set[String]] = Map() + private val inNeighbors: Map[String, Set[String]] = Map() + + object InsertionHelpers { + object NewNodeInserter_KeyValuePair_key extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewKeyValuePair => + dstCast(offset) = generated.key + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_KeyValuePair_value extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewKeyValuePair => + dstCast(offset) = generated.value + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewKeyValuePair extends NewNode(nodeKind = 20) with KeyValuePairBase { + override type StoredNodeType = KeyValuePair + override def label: String = "KEY_VALUE_PAIR" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewKeyValuePair.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewKeyValuePair.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var key: String = "": String + var value: String = "": String + def key(value: String): this.type = { this.key = value; this } + def value(value: String): this.type = { this.value = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 32, 1) + interface.countProperty(this, 49, 1) + } + + override def copy: this.type = { + val newInstance = new NewKeyValuePair + newInstance.key = this.key + newInstance.value = this.value + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "key" + case 1 => "value" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.key + case 1 => this.value + case _ => null + } + + override def productPrefix = "NewKeyValuePair" + override def productArity = 2 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewKeyValuePair] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLiteral.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLiteral.scala new file mode 100644 index 000000000..b0c644012 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLiteral.scala @@ -0,0 +1,1651 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewLiteral { + def apply(): NewLiteral = new NewLiteral + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Literal_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Literal_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLiteral => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewLiteral extends NewNode(nodeKind = 21) with LiteralBase with ExpressionNew { + override type StoredNodeType = Literal + override def label: String = "LITERAL" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewLiteral.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewLiteral.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewLiteral + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "dynamicTypeHintFullName" + case 5 => "lineNumber" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case 9 => "possibleTypes" + case 10 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.dynamicTypeHintFullName + case 5 => this.lineNumber + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case 9 => this.possibleTypes + case 10 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewLiteral" + override def productArity = 11 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewLiteral] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLocal.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLocal.scala new file mode 100644 index 000000000..d3cf998b8 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewLocal.scala @@ -0,0 +1,1682 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewLocal { + def apply(): NewLocal = new NewLocal + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Local_closureBindingId extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + generated.closureBindingId match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + dstCast(offset) = generated.genericSignature + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Local_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewLocal => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewLocal extends NewNode(nodeKind = 22) with LocalBase with AstNodeNew with DeclarationNew { + override type StoredNodeType = Local + override def label: String = "LOCAL" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewLocal.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewLocal.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var closureBindingId: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var genericSignature: String = "": String + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def closureBindingId(value: Option[String]): this.type = { this.closureBindingId = value; this } + def closureBindingId(value: String): this.type = { this.closureBindingId = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def genericSignature(value: String): this.type = { this.genericSignature = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 6, closureBindingId.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 22, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewLocal + newInstance.closureBindingId = this.closureBindingId + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.genericSignature = this.genericSignature + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "closureBindingId" + case 1 => "code" + case 2 => "columnNumber" + case 3 => "dynamicTypeHintFullName" + case 4 => "genericSignature" + case 5 => "lineNumber" + case 6 => "name" + case 7 => "offset" + case 8 => "offsetEnd" + case 9 => "order" + case 10 => "possibleTypes" + case 11 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.closureBindingId + case 1 => this.code + case 2 => this.columnNumber + case 3 => this.dynamicTypeHintFullName + case 4 => this.genericSignature + case 5 => this.lineNumber + case 6 => this.name + case 7 => this.offset + case 8 => this.offsetEnd + case 9 => this.order + case 10 => this.possibleTypes + case 11 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewLocal" + override def productArity = 12 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewLocal] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMember.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMember.scala new file mode 100644 index 000000000..51481b4a2 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMember.scala @@ -0,0 +1,1708 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewMember { + def apply(): NewMember = new NewMember + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Member_astParentFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + dstCast(offset) = generated.astParentFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_astParentType extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + dstCast(offset) = generated.astParentType + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + dstCast(offset) = generated.genericSignature + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Member_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMember => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewMember extends NewNode(nodeKind = 23) with MemberBase with AstNodeNew with DeclarationNew { + override type StoredNodeType = Member + override def label: String = "MEMBER" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMember.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMember.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var astParentFullName: String = "": String + var astParentType: String = "": String + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var genericSignature: String = "": String + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def astParentFullName(value: String): this.type = { this.astParentFullName = value; this } + def astParentType(value: String): this.type = { this.astParentType = value; this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def genericSignature(value: String): this.type = { this.genericSignature = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 3, 1) + interface.countProperty(this, 4, 1) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 22, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewMember + newInstance.astParentFullName = this.astParentFullName + newInstance.astParentType = this.astParentType + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.genericSignature = this.genericSignature + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "astParentFullName" + case 1 => "astParentType" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "dynamicTypeHintFullName" + case 5 => "genericSignature" + case 6 => "lineNumber" + case 7 => "name" + case 8 => "offset" + case 9 => "offsetEnd" + case 10 => "order" + case 11 => "possibleTypes" + case 12 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.astParentFullName + case 1 => this.astParentType + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.dynamicTypeHintFullName + case 5 => this.genericSignature + case 6 => this.lineNumber + case 7 => this.name + case 8 => this.offset + case 9 => this.offsetEnd + case 10 => this.order + case 11 => this.possibleTypes + case 12 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewMember" + override def productArity = 13 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMember] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMetaData.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMetaData.scala new file mode 100644 index 000000000..f646b6c6a --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMetaData.scala @@ -0,0 +1,210 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewMetaData { + def apply(): NewMetaData = new NewMetaData + private val outNeighbors: Map[String, Set[String]] = Map() + private val inNeighbors: Map[String, Set[String]] = Map() + + object InsertionHelpers { + object NewNodeInserter_MetaData_hash extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMetaData => + generated.hash match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MetaData_language extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMetaData => + dstCast(offset) = generated.language + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MetaData_overlays extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMetaData => + for (item <- generated.overlays) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MetaData_root extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMetaData => + dstCast(offset) = generated.root + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MetaData_version extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMetaData => + dstCast(offset) = generated.version + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewMetaData extends NewNode(nodeKind = 24) with MetaDataBase { + override type StoredNodeType = MetaData + override def label: String = "META_DATA" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMetaData.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMetaData.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var hash: Option[String] = None + var language: String = "": String + var overlays: IndexedSeq[String] = ArraySeq.empty + var root: String = "": String + var version: String = "": String + def hash(value: Option[String]): this.type = { this.hash = value; this } + def hash(value: String): this.type = { this.hash = Option(value); this } + def language(value: String): this.type = { this.language = value; this } + def overlays(value: IterableOnce[String]): this.type = { this.overlays = value.iterator.to(ArraySeq); this } + def root(value: String): this.type = { this.root = value; this } + def version(value: String): this.type = { this.version = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 23, hash.size) + interface.countProperty(this, 33, 1) + interface.countProperty(this, 42, overlays.size) + interface.countProperty(this, 45, 1) + interface.countProperty(this, 50, 1) + } + + override def copy: this.type = { + val newInstance = new NewMetaData + newInstance.hash = this.hash + newInstance.language = this.language + newInstance.overlays = this.overlays + newInstance.root = this.root + newInstance.version = this.version + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "hash" + case 1 => "language" + case 2 => "overlays" + case 3 => "root" + case 4 => "version" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.hash + case 1 => this.language + case 2 => this.overlays + case 3 => this.root + case 4 => this.version + case _ => null + } + + override def productPrefix = "NewMetaData" + override def productArity = 5 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMetaData] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethod.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethod.scala new file mode 100644 index 000000000..a4699858d --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethod.scala @@ -0,0 +1,1841 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewMethod { + def apply(): NewMethod = new NewMethod + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Method_astParentFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.astParentFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_astParentType extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.astParentType + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_columnNumberEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + generated.columnNumberEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_filename extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.filename + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_fullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.fullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.genericSignature + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_hash extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + generated.hash match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_isExternal extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Boolean]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.isExternal + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_lineNumberEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + generated.lineNumberEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Method_signature extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethod => + dstCast(offset) = generated.signature + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewMethod extends NewNode(nodeKind = 25) with MethodBase with AstNodeNew with CfgNodeNew with DeclarationNew { + override type StoredNodeType = Method + override def label: String = "METHOD" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethod.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethod.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var astParentFullName: String = "": String + var astParentType: String = "": String + var code: String = "": String + var columnNumber: Option[Int] = None + var columnNumberEnd: Option[Int] = None + var filename: String = "": String + var fullName: String = "": String + var genericSignature: String = "": String + var hash: Option[String] = None + var isExternal: Boolean = false: Boolean + var lineNumber: Option[Int] = None + var lineNumberEnd: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var signature: String = "": String + def astParentFullName(value: String): this.type = { this.astParentFullName = value; this } + def astParentType(value: String): this.type = { this.astParentType = value; this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def columnNumberEnd(value: Int): this.type = { this.columnNumberEnd = Option(value); this } + def columnNumberEnd(value: Option[Int]): this.type = { this.columnNumberEnd = value; this } + def filename(value: String): this.type = { this.filename = value; this } + def fullName(value: String): this.type = { this.fullName = value; this } + def genericSignature(value: String): this.type = { this.genericSignature = value; this } + def hash(value: Option[String]): this.type = { this.hash = value; this } + def hash(value: String): this.type = { this.hash = Option(value); this } + def isExternal(value: Boolean): this.type = { this.isExternal = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def lineNumberEnd(value: Int): this.type = { this.lineNumberEnd = Option(value); this } + def lineNumberEnd(value: Option[Int]): this.type = { this.lineNumberEnd = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def signature(value: String): this.type = { this.signature = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 3, 1) + interface.countProperty(this, 4, 1) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 10, columnNumberEnd.size) + interface.countProperty(this, 20, 1) + interface.countProperty(this, 21, 1) + interface.countProperty(this, 22, 1) + interface.countProperty(this, 23, hash.size) + interface.countProperty(this, 29, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 35, lineNumberEnd.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 46, 1) + } + + override def copy: this.type = { + val newInstance = new NewMethod + newInstance.astParentFullName = this.astParentFullName + newInstance.astParentType = this.astParentType + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.columnNumberEnd = this.columnNumberEnd + newInstance.filename = this.filename + newInstance.fullName = this.fullName + newInstance.genericSignature = this.genericSignature + newInstance.hash = this.hash + newInstance.isExternal = this.isExternal + newInstance.lineNumber = this.lineNumber + newInstance.lineNumberEnd = this.lineNumberEnd + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.signature = this.signature + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "astParentFullName" + case 1 => "astParentType" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "columnNumberEnd" + case 5 => "filename" + case 6 => "fullName" + case 7 => "genericSignature" + case 8 => "hash" + case 9 => "isExternal" + case 10 => "lineNumber" + case 11 => "lineNumberEnd" + case 12 => "name" + case 13 => "offset" + case 14 => "offsetEnd" + case 15 => "order" + case 16 => "signature" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.astParentFullName + case 1 => this.astParentType + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.columnNumberEnd + case 5 => this.filename + case 6 => this.fullName + case 7 => this.genericSignature + case 8 => this.hash + case 9 => this.isExternal + case 10 => this.lineNumber + case 11 => this.lineNumberEnd + case 12 => this.name + case 13 => this.offset + case 14 => this.offsetEnd + case 15 => this.order + case 16 => this.signature + case _ => null + } + + override def productPrefix = "NewMethod" + override def productArity = 17 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethod] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterIn.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterIn.scala new file mode 100644 index 000000000..1064a4054 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterIn.scala @@ -0,0 +1,1749 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewMethodParameterIn { + def apply(): NewMethodParameterIn = new NewMethodParameterIn + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_MethodParameterIn_closureBindingId extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + generated.closureBindingId match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + dstCast(offset) = generated.evaluationStrategy + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_index extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + dstCast(offset) = generated.index + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_isVariadic extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Boolean]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + dstCast(offset) = generated.isVariadic + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterIn_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterIn => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewMethodParameterIn + extends NewNode(nodeKind = 26) + with MethodParameterInBase + with AstNodeNew + with CfgNodeNew + with DeclarationNew { + override type StoredNodeType = MethodParameterIn + override def label: String = "METHOD_PARAMETER_IN" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodParameterIn.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodParameterIn.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var closureBindingId: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var evaluationStrategy: String = "": String + var index: Int = -1: Int + var isVariadic: Boolean = false: Boolean + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def closureBindingId(value: Option[String]): this.type = { this.closureBindingId = value; this } + def closureBindingId(value: String): this.type = { this.closureBindingId = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } + def index(value: Int): this.type = { this.index = value; this } + def isVariadic(value: Boolean): this.type = { this.isVariadic = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 6, closureBindingId.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 17, 1) + interface.countProperty(this, 26, 1) + interface.countProperty(this, 30, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewMethodParameterIn + newInstance.closureBindingId = this.closureBindingId + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.evaluationStrategy = this.evaluationStrategy + newInstance.index = this.index + newInstance.isVariadic = this.isVariadic + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "closureBindingId" + case 1 => "code" + case 2 => "columnNumber" + case 3 => "dynamicTypeHintFullName" + case 4 => "evaluationStrategy" + case 5 => "index" + case 6 => "isVariadic" + case 7 => "lineNumber" + case 8 => "name" + case 9 => "offset" + case 10 => "offsetEnd" + case 11 => "order" + case 12 => "possibleTypes" + case 13 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.closureBindingId + case 1 => this.code + case 2 => this.columnNumber + case 3 => this.dynamicTypeHintFullName + case 4 => this.evaluationStrategy + case 5 => this.index + case 6 => this.isVariadic + case 7 => this.lineNumber + case 8 => this.name + case 9 => this.offset + case 10 => this.offsetEnd + case 11 => this.order + case 12 => this.possibleTypes + case 13 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewMethodParameterIn" + override def productArity = 14 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodParameterIn] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterOut.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterOut.scala new file mode 100644 index 000000000..f91bc116f --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodParameterOut.scala @@ -0,0 +1,1645 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewMethodParameterOut { + def apply(): NewMethodParameterOut = new NewMethodParameterOut + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_MethodParameterOut_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + dstCast(offset) = generated.evaluationStrategy + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_index extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + dstCast(offset) = generated.index + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_isVariadic extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Boolean]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + dstCast(offset) = generated.isVariadic + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodParameterOut_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodParameterOut => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewMethodParameterOut + extends NewNode(nodeKind = 27) + with MethodParameterOutBase + with AstNodeNew + with CfgNodeNew + with DeclarationNew { + override type StoredNodeType = MethodParameterOut + override def label: String = "METHOD_PARAMETER_OUT" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodParameterOut.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodParameterOut.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var evaluationStrategy: String = "": String + var index: Int = -1: Int + var isVariadic: Boolean = false: Boolean + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var typeFullName: String = "": String + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } + def index(value: Int): this.type = { this.index = value; this } + def isVariadic(value: Boolean): this.type = { this.isVariadic = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 17, 1) + interface.countProperty(this, 26, 1) + interface.countProperty(this, 30, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewMethodParameterOut + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.evaluationStrategy = this.evaluationStrategy + newInstance.index = this.index + newInstance.isVariadic = this.isVariadic + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "evaluationStrategy" + case 3 => "index" + case 4 => "isVariadic" + case 5 => "lineNumber" + case 6 => "name" + case 7 => "offset" + case 8 => "offsetEnd" + case 9 => "order" + case 10 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.evaluationStrategy + case 3 => this.index + case 4 => this.isVariadic + case 5 => this.lineNumber + case 6 => this.name + case 7 => this.offset + case 8 => this.offsetEnd + case 9 => this.order + case 10 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewMethodParameterOut" + override def productArity = 11 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodParameterOut] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodRef.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodRef.scala new file mode 100644 index 000000000..6fd1a176c --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodRef.scala @@ -0,0 +1,1682 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewMethodRef { + def apply(): NewMethodRef = new NewMethodRef + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_MethodRef_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_methodFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + dstCast(offset) = generated.methodFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodRef_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodRef => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewMethodRef extends NewNode(nodeKind = 28) with MethodRefBase with ExpressionNew { + override type StoredNodeType = MethodRef + override def label: String = "METHOD_REF" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodRef.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodRef.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var lineNumber: Option[Int] = None + var methodFullName: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def methodFullName(value: String): this.type = { this.methodFullName = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 36, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewMethodRef + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.lineNumber = this.lineNumber + newInstance.methodFullName = this.methodFullName + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "dynamicTypeHintFullName" + case 5 => "lineNumber" + case 6 => "methodFullName" + case 7 => "offset" + case 8 => "offsetEnd" + case 9 => "order" + case 10 => "possibleTypes" + case 11 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.dynamicTypeHintFullName + case 5 => this.lineNumber + case 6 => this.methodFullName + case 7 => this.offset + case 8 => this.offsetEnd + case 9 => this.order + case 10 => this.possibleTypes + case 11 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewMethodRef" + override def productArity = 12 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodRef] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodReturn.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodReturn.scala new file mode 100644 index 000000000..39ab8bbd9 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewMethodReturn.scala @@ -0,0 +1,1615 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewMethodReturn { + def apply(): NewMethodReturn = new NewMethodReturn + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_MethodReturn_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_evaluationStrategy extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + dstCast(offset) = generated.evaluationStrategy + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_MethodReturn_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewMethodReturn => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewMethodReturn extends NewNode(nodeKind = 29) with MethodReturnBase with CfgNodeNew { + override type StoredNodeType = MethodReturn + override def label: String = "METHOD_RETURN" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodReturn.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewMethodReturn.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var evaluationStrategy: String = "": String + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def evaluationStrategy(value: String): this.type = { this.evaluationStrategy = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 17, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewMethodReturn + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.evaluationStrategy = this.evaluationStrategy + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "dynamicTypeHintFullName" + case 3 => "evaluationStrategy" + case 4 => "lineNumber" + case 5 => "offset" + case 6 => "offsetEnd" + case 7 => "order" + case 8 => "possibleTypes" + case 9 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.dynamicTypeHintFullName + case 3 => this.evaluationStrategy + case 4 => this.lineNumber + case 5 => this.offset + case 6 => this.offsetEnd + case 7 => this.order + case 8 => this.possibleTypes + case 9 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewMethodReturn" + override def productArity = 10 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewMethodReturn] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewModifier.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewModifier.scala new file mode 100644 index 000000000..688c8e4ed --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewModifier.scala @@ -0,0 +1,1516 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewModifier { + def apply(): NewModifier = new NewModifier + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Modifier_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewModifier => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Modifier_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewModifier => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Modifier_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewModifier => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Modifier_modifierType extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewModifier => + dstCast(offset) = generated.modifierType + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Modifier_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewModifier => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Modifier_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewModifier => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Modifier_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewModifier => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewModifier extends NewNode(nodeKind = 30) with ModifierBase with AstNodeNew { + override type StoredNodeType = Modifier + override def label: String = "MODIFIER" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewModifier.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewModifier.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var modifierType: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def modifierType(value: String): this.type = { this.modifierType = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 37, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewModifier + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.modifierType = this.modifierType + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "lineNumber" + case 3 => "modifierType" + case 4 => "offset" + case 5 => "offsetEnd" + case 6 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.lineNumber + case 3 => this.modifierType + case 4 => this.offset + case 5 => this.offsetEnd + case 6 => this.order + case _ => null + } + + override def productPrefix = "NewModifier" + override def productArity = 7 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewModifier] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespace.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespace.scala new file mode 100644 index 000000000..fbafe7edc --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespace.scala @@ -0,0 +1,1516 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewNamespace { + def apply(): NewNamespace = new NewNamespace + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Namespace_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespace => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Namespace_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespace => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Namespace_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespace => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Namespace_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespace => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Namespace_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespace => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Namespace_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespace => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Namespace_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespace => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewNamespace extends NewNode(nodeKind = 31) with NamespaceBase with AstNodeNew { + override type StoredNodeType = Namespace + override def label: String = "NAMESPACE" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewNamespace.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewNamespace.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewNamespace + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "lineNumber" + case 3 => "name" + case 4 => "offset" + case 5 => "offsetEnd" + case 6 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.lineNumber + case 3 => this.name + case 4 => this.offset + case 5 => this.offsetEnd + case 6 => this.order + case _ => null + } + + override def productPrefix = "NewNamespace" + override def productArity = 7 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewNamespace] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespaceBlock.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespaceBlock.scala new file mode 100644 index 000000000..6289b1cea --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewNamespaceBlock.scala @@ -0,0 +1,1578 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewNamespaceBlock { + def apply(): NewNamespaceBlock = new NewNamespaceBlock + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_NamespaceBlock_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_filename extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + dstCast(offset) = generated.filename + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_fullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + dstCast(offset) = generated.fullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_NamespaceBlock_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewNamespaceBlock => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewNamespaceBlock extends NewNode(nodeKind = 32) with NamespaceBlockBase with AstNodeNew { + override type StoredNodeType = NamespaceBlock + override def label: String = "NAMESPACE_BLOCK" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewNamespaceBlock.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewNamespaceBlock.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var filename: String = "": String + var fullName: String = "": String + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def filename(value: String): this.type = { this.filename = value; this } + def fullName(value: String): this.type = { this.fullName = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 20, 1) + interface.countProperty(this, 21, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewNamespaceBlock + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.filename = this.filename + newInstance.fullName = this.fullName + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "filename" + case 3 => "fullName" + case 4 => "lineNumber" + case 5 => "name" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.filename + case 3 => this.fullName + case 4 => this.lineNumber + case 5 => this.name + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case _ => null + } + + override def productPrefix = "NewNamespaceBlock" + override def productArity = 9 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewNamespaceBlock] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewReturn.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewReturn.scala new file mode 100644 index 000000000..49940d461 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewReturn.scala @@ -0,0 +1,1552 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewReturn { + def apply(): NewReturn = new NewReturn + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Return_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Return_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Return_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Return_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Return_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Return_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Return_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Return_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewReturn => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewReturn extends NewNode(nodeKind = 33) with ReturnBase with ExpressionNew { + override type StoredNodeType = Return + override def label: String = "RETURN" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewReturn.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewReturn.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewReturn + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "lineNumber" + case 5 => "offset" + case 6 => "offsetEnd" + case 7 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.lineNumber + case 5 => this.offset + case 6 => this.offsetEnd + case 7 => this.order + case _ => null + } + + override def productPrefix = "NewReturn" + override def productArity = 8 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewReturn] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTag.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTag.scala new file mode 100644 index 000000000..363144615 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTag.scala @@ -0,0 +1,135 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewTag { + def apply(): NewTag = new NewTag + private val outNeighbors: Map[String, Set[String]] = Map("TAGGED_BY" -> Set("TAG")) + private val inNeighbors: Map[String, Set[String]] = Map( + "TAGGED_BY" -> Set( + "BLOCK", + "CALL", + "CONTROL_STRUCTURE", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "RETURN", + "TAG", + "TEMPLATE_DOM", + "TYPE_DECL", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Tag_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTag => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Tag_value extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTag => + dstCast(offset) = generated.value + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewTag extends NewNode(nodeKind = 34) with TagBase { + override type StoredNodeType = Tag + override def label: String = "TAG" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTag.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTag.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var name: String = "": String + var value: String = "": String + def name(value: String): this.type = { this.name = value; this } + def value(value: String): this.type = { this.value = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 38, 1) + interface.countProperty(this, 49, 1) + } + + override def copy: this.type = { + val newInstance = new NewTag + newInstance.name = this.name + newInstance.value = this.value + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "name" + case 1 => "value" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.name + case 1 => this.value + case _ => null + } + + override def productPrefix = "NewTag" + override def productArity = 2 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTag] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTagNodePair.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTagNodePair.scala new file mode 100644 index 000000000..a2353bd27 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTagNodePair.scala @@ -0,0 +1,116 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewTagNodePair { + def apply(): NewTagNodePair = new NewTagNodePair + private val outNeighbors: Map[String, Set[String]] = Map() + private val inNeighbors: Map[String, Set[String]] = Map() + + object InsertionHelpers { + object NewNodeInserter_TagNodePair_node extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTagNodePair => + dstCast(offset) = generated.node match { + case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; case null => null + } + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TagNodePair_tag extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTagNodePair => + dstCast(offset) = generated.tag match { + case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; case null => null + } + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewTagNodePair extends NewNode(nodeKind = 35) with TagNodePairBase { + override type StoredNodeType = TagNodePair + override def label: String = "TAG_NODE_PAIR" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTagNodePair.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTagNodePair.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var node: AbstractNode = null + var tag: TagBase = null + def node(value: AbstractNode): this.type = { this.node = value; this } + def tag(value: TagBase): this.type = { this.tag = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 53, 1) + interface.visitContainedNode(node) + interface.countProperty(this, 54, 1) + interface.visitContainedNode(tag) + } + + override def copy: this.type = { + val newInstance = new NewTagNodePair + newInstance.node = this.node + newInstance.tag = this.tag + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "node" + case 1 => "tag" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.node + case 1 => this.tag + case _ => null + } + + override def productPrefix = "NewTagNodePair" + override def productArity = 2 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTagNodePair] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTemplateDom.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTemplateDom.scala new file mode 100644 index 000000000..3ab173997 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTemplateDom.scala @@ -0,0 +1,1583 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewTemplateDom { + def apply(): NewTemplateDom = new NewTemplateDom + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_TemplateDom_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TemplateDom_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTemplateDom => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewTemplateDom extends NewNode(nodeKind = 36) with TemplateDomBase with ExpressionNew { + override type StoredNodeType = TemplateDom + override def label: String = "TEMPLATE_DOM" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTemplateDom.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTemplateDom.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewTemplateDom + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "lineNumber" + case 5 => "name" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.lineNumber + case 5 => this.name + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case _ => null + } + + override def productPrefix = "NewTemplateDom" + override def productArity = 9 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTemplateDom] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewType.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewType.scala new file mode 100644 index 000000000..f165d9fbb --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewType.scala @@ -0,0 +1,161 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewType { + def apply(): NewType = new NewType + private val outNeighbors: Map[String, Set[String]] = Map("AST" -> Set("TYPE_ARGUMENT"), "REF" -> Set("TYPE_DECL")) + private val inNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE_DECL"), + "EVAL_TYPE" -> Set( + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CONTROL_STRUCTURE", + "IDENTIFIER", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "TYPE_REF", + "UNKNOWN" + ), + "INHERITS_FROM" -> Set("TYPE_DECL"), + "REF" -> Set("TYPE_ARGUMENT") + ) + + object InsertionHelpers { + object NewNodeInserter_Type_fullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewType => + dstCast(offset) = generated.fullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Type_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewType => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Type_typeDeclFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewType => + dstCast(offset) = generated.typeDeclFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewType extends NewNode(nodeKind = 37) with TypeBase { + override type StoredNodeType = Type + override def label: String = "TYPE" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewType.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewType.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var fullName: String = "": String + var name: String = "": String + var typeDeclFullName: String = "": String + def fullName(value: String): this.type = { this.fullName = value; this } + def name(value: String): this.type = { this.name = value; this } + def typeDeclFullName(value: String): this.type = { this.typeDeclFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 21, 1) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 47, 1) + } + + override def copy: this.type = { + val newInstance = new NewType + newInstance.fullName = this.fullName + newInstance.name = this.name + newInstance.typeDeclFullName = this.typeDeclFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "fullName" + case 1 => "name" + case 2 => "typeDeclFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.fullName + case 1 => this.name + case 2 => this.typeDeclFullName + case _ => null + } + + override def productPrefix = "NewType" + override def productArity = 3 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewType] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeArgument.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeArgument.scala new file mode 100644 index 000000000..e932768fe --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeArgument.scala @@ -0,0 +1,1485 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewTypeArgument { + def apply(): NewTypeArgument = new NewTypeArgument + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_TypeArgument_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeArgument => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeArgument_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeArgument => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeArgument_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeArgument => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeArgument_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeArgument => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeArgument_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeArgument => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeArgument_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeArgument => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewTypeArgument extends NewNode(nodeKind = 38) with TypeArgumentBase with AstNodeNew { + override type StoredNodeType = TypeArgument + override def label: String = "TYPE_ARGUMENT" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeArgument.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeArgument.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewTypeArgument + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "lineNumber" + case 3 => "offset" + case 4 => "offsetEnd" + case 5 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.lineNumber + case 3 => this.offset + case 4 => this.offsetEnd + case 5 => this.order + case _ => null + } + + override def productPrefix = "NewTypeArgument" + override def productArity = 6 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeArgument] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeDecl.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeDecl.scala new file mode 100644 index 000000000..9fb3fc6cf --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeDecl.scala @@ -0,0 +1,1773 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewTypeDecl { + def apply(): NewTypeDecl = new NewTypeDecl + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_TypeDecl_aliasTypeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + generated.aliasTypeFullName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_astParentFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.astParentFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_astParentType extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.astParentType + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_filename extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.filename + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_fullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.fullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.genericSignature + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_inheritsFromTypeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + for (item <- generated.inheritsFromTypeFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_isExternal extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Boolean]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.isExternal + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeDecl_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeDecl => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewTypeDecl extends NewNode(nodeKind = 39) with TypeDeclBase with AstNodeNew { + override type StoredNodeType = TypeDecl + override def label: String = "TYPE_DECL" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeDecl.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeDecl.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var aliasTypeFullName: Option[String] = None + var astParentFullName: String = "": String + var astParentType: String = "": String + var code: String = "": String + var columnNumber: Option[Int] = None + var filename: String = "": String + var fullName: String = "": String + var genericSignature: String = "": String + var inheritsFromTypeFullName: IndexedSeq[String] = ArraySeq.empty + var isExternal: Boolean = false: Boolean + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def aliasTypeFullName(value: Option[String]): this.type = { this.aliasTypeFullName = value; this } + def aliasTypeFullName(value: String): this.type = { this.aliasTypeFullName = Option(value); this } + def astParentFullName(value: String): this.type = { this.astParentFullName = value; this } + def astParentType(value: String): this.type = { this.astParentType = value; this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def filename(value: String): this.type = { this.filename = value; this } + def fullName(value: String): this.type = { this.fullName = value; this } + def genericSignature(value: String): this.type = { this.genericSignature = value; this } + def inheritsFromTypeFullName(value: IterableOnce[String]): this.type = { + this.inheritsFromTypeFullName = value.iterator.to(ArraySeq); this + } + def isExternal(value: Boolean): this.type = { this.isExternal = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 0, aliasTypeFullName.size) + interface.countProperty(this, 3, 1) + interface.countProperty(this, 4, 1) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 20, 1) + interface.countProperty(this, 21, 1) + interface.countProperty(this, 22, 1) + interface.countProperty(this, 27, inheritsFromTypeFullName.size) + interface.countProperty(this, 29, 1) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewTypeDecl + newInstance.aliasTypeFullName = this.aliasTypeFullName + newInstance.astParentFullName = this.astParentFullName + newInstance.astParentType = this.astParentType + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.filename = this.filename + newInstance.fullName = this.fullName + newInstance.genericSignature = this.genericSignature + newInstance.inheritsFromTypeFullName = this.inheritsFromTypeFullName + newInstance.isExternal = this.isExternal + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "aliasTypeFullName" + case 1 => "astParentFullName" + case 2 => "astParentType" + case 3 => "code" + case 4 => "columnNumber" + case 5 => "filename" + case 6 => "fullName" + case 7 => "genericSignature" + case 8 => "inheritsFromTypeFullName" + case 9 => "isExternal" + case 10 => "lineNumber" + case 11 => "name" + case 12 => "offset" + case 13 => "offsetEnd" + case 14 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.aliasTypeFullName + case 1 => this.astParentFullName + case 2 => this.astParentType + case 3 => this.code + case 4 => this.columnNumber + case 5 => this.filename + case 6 => this.fullName + case 7 => this.genericSignature + case 8 => this.inheritsFromTypeFullName + case 9 => this.isExternal + case 10 => this.lineNumber + case 11 => this.name + case 12 => this.offset + case 13 => this.offsetEnd + case 14 => this.order + case _ => null + } + + override def productPrefix = "NewTypeDecl" + override def productArity = 15 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeDecl] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeParameter.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeParameter.scala new file mode 100644 index 000000000..be0c554ab --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeParameter.scala @@ -0,0 +1,1516 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewTypeParameter { + def apply(): NewTypeParameter = new NewTypeParameter + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_TypeParameter_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeParameter => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeParameter_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeParameter => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeParameter_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeParameter => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeParameter_name extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeParameter => + dstCast(offset) = generated.name + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeParameter_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeParameter => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeParameter_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeParameter => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeParameter_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeParameter => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewTypeParameter extends NewNode(nodeKind = 40) with TypeParameterBase with AstNodeNew { + override type StoredNodeType = TypeParameter + override def label: String = "TYPE_PARAMETER" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeParameter.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeParameter.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var code: String = "": String + var columnNumber: Option[Int] = None + var lineNumber: Option[Int] = None + var name: String = "": String + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def name(value: String): this.type = { this.name = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 38, 1) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + } + + override def copy: this.type = { + val newInstance = new NewTypeParameter + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.lineNumber = this.lineNumber + newInstance.name = this.name + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "code" + case 1 => "columnNumber" + case 2 => "lineNumber" + case 3 => "name" + case 4 => "offset" + case 5 => "offsetEnd" + case 6 => "order" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.code + case 1 => this.columnNumber + case 2 => this.lineNumber + case 3 => this.name + case 4 => this.offset + case 5 => this.offsetEnd + case 6 => this.order + case _ => null + } + + override def productPrefix = "NewTypeParameter" + override def productArity = 7 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeParameter] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeRef.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeRef.scala new file mode 100644 index 000000000..c7fd14912 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewTypeRef.scala @@ -0,0 +1,1651 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewTypeRef { + def apply(): NewTypeRef = new NewTypeRef + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_TypeRef_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_TypeRef_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewTypeRef => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewTypeRef extends NewNode(nodeKind = 41) with TypeRefBase with ExpressionNew { + override type StoredNodeType = TypeRef + override def label: String = "TYPE_REF" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeRef.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewTypeRef.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewTypeRef + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "dynamicTypeHintFullName" + case 5 => "lineNumber" + case 6 => "offset" + case 7 => "offsetEnd" + case 8 => "order" + case 9 => "possibleTypes" + case 10 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.dynamicTypeHintFullName + case 5 => this.lineNumber + case 6 => this.offset + case 7 => this.offsetEnd + case 8 => this.order + case 9 => this.possibleTypes + case 10 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewTypeRef" + override def productArity = 11 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeRef] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewUnknown.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewUnknown.scala new file mode 100644 index 000000000..55b368d50 --- /dev/null +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/NewUnknown.scala @@ -0,0 +1,1713 @@ +package io.shiftleft.codepropertygraph.generated.nodes + +import io.shiftleft.codepropertygraph.generated.language.* +import scala.collection.immutable.{IndexedSeq, ArraySeq} +import scala.collection.mutable + +object NewUnknown { + def apply(): NewUnknown = new NewUnknown + private val outNeighbors: Map[String, Set[String]] = Map( + "ALIAS_OF" -> Set("TYPE"), + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS" -> Set("BINDING"), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CAPTURE" -> Set("CLOSURE_BINDING"), + "CAPTURED_BY" -> Set("CLOSURE_BINDING"), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "EVAL_TYPE" -> Set("TYPE"), + "IMPORTS" -> Set("DEPENDENCY"), + "INHERITS_FROM" -> Set("TYPE"), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "TAGGED_BY" -> Set("TAG") + ) + private val inNeighbors: Map[String, Set[String]] = Map( + "ARGUMENT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "AST" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "BINDS_TO" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CALL" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CDG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CFG" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONDITION" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "CONTAINS" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "IS_CALL_FOR_IMPORT" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "PARAMETER_LINK" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "POST_DOMINATE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REACHING_DEF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "RECEIVER" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "REF" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BINDING", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "CLOSURE_BINDING", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ), + "SOURCE_FILE" -> Set( + "ANNOTATION", + "ANNOTATION_LITERAL", + "ANNOTATION_PARAMETER", + "ANNOTATION_PARAMETER_ASSIGN", + "ARRAY_INITIALIZER", + "BLOCK", + "CALL", + "CALL_REPR", + "CFG_NODE", + "COMMENT", + "CONTROL_STRUCTURE", + "EXPRESSION", + "FIELD_IDENTIFIER", + "FILE", + "IDENTIFIER", + "IMPORT", + "JUMP_LABEL", + "JUMP_TARGET", + "LITERAL", + "LOCAL", + "MEMBER", + "METHOD", + "METHOD_PARAMETER_IN", + "METHOD_PARAMETER_OUT", + "METHOD_REF", + "METHOD_RETURN", + "MODIFIER", + "NAMESPACE", + "NAMESPACE_BLOCK", + "RETURN", + "TEMPLATE_DOM", + "TYPE_ARGUMENT", + "TYPE_DECL", + "TYPE_PARAMETER", + "TYPE_REF", + "UNKNOWN" + ) + ) + + object InsertionHelpers { + object NewNodeInserter_Unknown_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + dstCast(offset) = generated.argumentIndex + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_argumentName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + generated.argumentName match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_code extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + dstCast(offset) = generated.code + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + generated.columnNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_containedRef extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + dstCast(offset) = generated.containedRef + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + for (item <- generated.dynamicTypeHintFullName) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + generated.lineNumber match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_offset extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + generated.offset match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + generated.offsetEnd match { + case Some(item) => + dstCast(offset) = item + offset += 1 + case _ => + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_order extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[Int]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + dstCast(offset) = generated.order + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + dstCast(offset) = generated.parserTypeName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + for (item <- generated.possibleTypes) { + dstCast(offset) = item + offset += 1 + } + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + object NewNodeInserter_Unknown_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { + override def insertNewNodeProperties( + newNodes: mutable.ArrayBuffer[flatgraph.DNode], + dst: AnyRef, + offsets: Array[Int] + ): Unit = { + if (newNodes.isEmpty) return + val dstCast = dst.asInstanceOf[Array[String]] + val seq = newNodes.head.storedRef.get.seq() + var offset = offsets(seq) + var idx = 0 + while (idx < newNodes.length) { + val nn = newNodes(idx) + nn match { + case generated: NewUnknown => + dstCast(offset) = generated.typeFullName + offset += 1 + case _ => + } + assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") + idx += 1 + offsets(idx + seq) = offset + } + } + } + } +} + +class NewUnknown extends NewNode(nodeKind = 42) with UnknownBase with ExpressionNew { + override type StoredNodeType = Unknown + override def label: String = "UNKNOWN" + + override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewUnknown.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { + NewUnknown.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) + } + + var argumentIndex: Int = -1: Int + var argumentName: Option[String] = None + var code: String = "": String + var columnNumber: Option[Int] = None + var containedRef: String = "": String + var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty + var lineNumber: Option[Int] = None + var offset: Option[Int] = None + var offsetEnd: Option[Int] = None + var order: Int = -1: Int + var parserTypeName: String = "": String + var possibleTypes: IndexedSeq[String] = ArraySeq.empty + var typeFullName: String = "": String + def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } + def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } + def argumentName(value: String): this.type = { this.argumentName = Option(value); this } + def code(value: String): this.type = { this.code = value; this } + def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } + def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } + def containedRef(value: String): this.type = { this.containedRef = value; this } + def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { + this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this + } + def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } + def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } + def offset(value: Int): this.type = { this.offset = Option(value); this } + def offset(value: Option[Int]): this.type = { this.offset = value; this } + def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } + def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } + def order(value: Int): this.type = { this.order = value; this } + def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } + def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } + def typeFullName(value: String): this.type = { this.typeFullName = value; this } + override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { + interface.countProperty(this, 1, 1) + interface.countProperty(this, 2, argumentName.size) + interface.countProperty(this, 8, 1) + interface.countProperty(this, 9, columnNumber.size) + interface.countProperty(this, 11, 1) + interface.countProperty(this, 16, dynamicTypeHintFullName.size) + interface.countProperty(this, 34, lineNumber.size) + interface.countProperty(this, 39, offset.size) + interface.countProperty(this, 40, offsetEnd.size) + interface.countProperty(this, 41, 1) + interface.countProperty(this, 43, 1) + interface.countProperty(this, 44, possibleTypes.size) + interface.countProperty(this, 48, 1) + } + + override def copy: this.type = { + val newInstance = new NewUnknown + newInstance.argumentIndex = this.argumentIndex + newInstance.argumentName = this.argumentName + newInstance.code = this.code + newInstance.columnNumber = this.columnNumber + newInstance.containedRef = this.containedRef + newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName + newInstance.lineNumber = this.lineNumber + newInstance.offset = this.offset + newInstance.offsetEnd = this.offsetEnd + newInstance.order = this.order + newInstance.parserTypeName = this.parserTypeName + newInstance.possibleTypes = this.possibleTypes + newInstance.typeFullName = this.typeFullName + newInstance.asInstanceOf[this.type] + } + + override def productElementName(n: Int): String = + n match { + case 0 => "argumentIndex" + case 1 => "argumentName" + case 2 => "code" + case 3 => "columnNumber" + case 4 => "containedRef" + case 5 => "dynamicTypeHintFullName" + case 6 => "lineNumber" + case 7 => "offset" + case 8 => "offsetEnd" + case 9 => "order" + case 10 => "parserTypeName" + case 11 => "possibleTypes" + case 12 => "typeFullName" + case _ => "" + } + + override def productElement(n: Int): Any = + n match { + case 0 => this.argumentIndex + case 1 => this.argumentName + case 2 => this.code + case 3 => this.columnNumber + case 4 => this.containedRef + case 5 => this.dynamicTypeHintFullName + case 6 => this.lineNumber + case 7 => this.offset + case 8 => this.offsetEnd + case 9 => this.order + case 10 => this.parserTypeName + case 11 => this.possibleTypes + case 12 => this.typeFullName + case _ => null + } + + override def productPrefix = "NewUnknown" + override def productArity = 13 + override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewUnknown] +} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala index d528a7b78..6ab2579cc 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Return.scala @@ -30,18 +30,43 @@ object Return { val Label = "RETURN" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class Return(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 33.toShort, seq_4762) + extends StoredNode(graph_4762, 33, seq_4762) with ReturnBase with Expression with StaticType[ReturnEMT] { @@ -77,1550 +102,3 @@ class Return(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Return] } - -object NewReturn { - def apply(): NewReturn = new NewReturn - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Return_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Return_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Return_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Return_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Return_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Return_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Return_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Return_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewReturn => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewReturn extends NewNode(33.toShort) with ReturnBase with ExpressionNew { - override type StoredNodeType = Return - override def label: String = "RETURN" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewReturn.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewReturn.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewReturn - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "lineNumber" - case 5 => "offset" - case 6 => "offsetEnd" - case 7 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.lineNumber - case 5 => this.offset - case 6 => this.offsetEnd - case 7 => this.order - case _ => null - } - - override def productPrefix = "NewReturn" - override def productArity = 8 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewReturn] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/RootTypes.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/RootTypes.scala index 316b7359f..ec0b55689 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/RootTypes.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/RootTypes.scala @@ -17,125 +17,269 @@ abstract class StoredNode(graph_4762: flatgraph.Graph, kind_4762: Short, seq_476 extends flatgraph.GNode(graph_4762, kind_4762, seq_4762) with AbstractNode { - final def _aliasOfOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 0).asInstanceOf[Iterator[StoredNode]] - final def _aliasOfIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 0).asInstanceOf[Iterator[StoredNode]] - - final def _argumentOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 1).asInstanceOf[Iterator[StoredNode]] - final def _argumentIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 1).asInstanceOf[Iterator[StoredNode]] - - final def _astOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 2).asInstanceOf[Iterator[StoredNode]] - final def _astIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 2).asInstanceOf[Iterator[StoredNode]] - - final def _bindsOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 3).asInstanceOf[Iterator[StoredNode]] - final def _bindsIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 3).asInstanceOf[Iterator[StoredNode]] - - final def _bindsToOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 4).asInstanceOf[Iterator[StoredNode]] - final def _bindsToIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 4).asInstanceOf[Iterator[StoredNode]] - - final def _callOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 5).asInstanceOf[Iterator[StoredNode]] - final def _callIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 5).asInstanceOf[Iterator[StoredNode]] - - final def _captureOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 6).asInstanceOf[Iterator[StoredNode]] - final def _captureIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 6).asInstanceOf[Iterator[StoredNode]] - - final def _capturedByOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 7).asInstanceOf[Iterator[StoredNode]] - final def _capturedByIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 7).asInstanceOf[Iterator[StoredNode]] - - final def _cdgOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 8).asInstanceOf[Iterator[StoredNode]] - final def _cdgIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 8).asInstanceOf[Iterator[StoredNode]] - - final def _cfgOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 9).asInstanceOf[Iterator[StoredNode]] - final def _cfgIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 9).asInstanceOf[Iterator[StoredNode]] - - final def _conditionOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 10).asInstanceOf[Iterator[StoredNode]] - final def _conditionIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 10).asInstanceOf[Iterator[StoredNode]] - - final def _containsOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 11).asInstanceOf[Iterator[StoredNode]] - final def _containsIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 11).asInstanceOf[Iterator[StoredNode]] - - final def _dominateOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 12).asInstanceOf[Iterator[StoredNode]] - final def _dominateIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 12).asInstanceOf[Iterator[StoredNode]] - - final def _evalTypeOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 13).asInstanceOf[Iterator[StoredNode]] - final def _evalTypeIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 13).asInstanceOf[Iterator[StoredNode]] - - final def _importsOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 14).asInstanceOf[Iterator[StoredNode]] - final def _importsIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 14).asInstanceOf[Iterator[StoredNode]] - - final def _inheritsFromOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 15).asInstanceOf[Iterator[StoredNode]] - final def _inheritsFromIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 15).asInstanceOf[Iterator[StoredNode]] - - final def _isCallForImportOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 16).asInstanceOf[Iterator[StoredNode]] - final def _isCallForImportIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 16).asInstanceOf[Iterator[StoredNode]] - - final def _parameterLinkOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 17).asInstanceOf[Iterator[StoredNode]] - final def _parameterLinkIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 17).asInstanceOf[Iterator[StoredNode]] - - final def _postDominateOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 18).asInstanceOf[Iterator[StoredNode]] - final def _postDominateIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 18).asInstanceOf[Iterator[StoredNode]] - - final def _reachingDefOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 19).asInstanceOf[Iterator[StoredNode]] - final def _reachingDefIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 19).asInstanceOf[Iterator[StoredNode]] - - final def _receiverOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 20).asInstanceOf[Iterator[StoredNode]] - final def _receiverIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 20).asInstanceOf[Iterator[StoredNode]] - - final def _refOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 21).asInstanceOf[Iterator[StoredNode]] - final def _refIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 21).asInstanceOf[Iterator[StoredNode]] - - final def _sourceFileOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 22).asInstanceOf[Iterator[StoredNode]] - final def _sourceFileIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 22).asInstanceOf[Iterator[StoredNode]] - - final def _taggedByOut: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsOut(this.graph, this.nodeKind, this.seq, 23).asInstanceOf[Iterator[StoredNode]] - final def _taggedByIn: Iterator[StoredNode] = - flatgraph.Accessors.getNeighborsIn(this.graph, this.nodeKind, this.seq, 23).asInstanceOf[Iterator[StoredNode]] + final def _aliasOfOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 0) + .asInstanceOf[Iterator[StoredNode]] + } + final def _aliasOfIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 0) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _argumentOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 1) + .asInstanceOf[Iterator[StoredNode]] + } + final def _argumentIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 1) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _astOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 2) + .asInstanceOf[Iterator[StoredNode]] + } + final def _astIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 2) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _bindsOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 3) + .asInstanceOf[Iterator[StoredNode]] + } + final def _bindsIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 3) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _bindsToOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 4) + .asInstanceOf[Iterator[StoredNode]] + } + final def _bindsToIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 4) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _callOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 5) + .asInstanceOf[Iterator[StoredNode]] + } + final def _callIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 5) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _captureOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 6) + .asInstanceOf[Iterator[StoredNode]] + } + final def _captureIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 6) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _capturedByOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 7) + .asInstanceOf[Iterator[StoredNode]] + } + final def _capturedByIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 7) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _cdgOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 8) + .asInstanceOf[Iterator[StoredNode]] + } + final def _cdgIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 8) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _cfgOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 9) + .asInstanceOf[Iterator[StoredNode]] + } + final def _cfgIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 9) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _conditionOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 10) + .asInstanceOf[Iterator[StoredNode]] + } + final def _conditionIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 10) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _containsOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 11) + .asInstanceOf[Iterator[StoredNode]] + } + final def _containsIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 11) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _dominateOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 12) + .asInstanceOf[Iterator[StoredNode]] + } + final def _dominateIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 12) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _evalTypeOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 13) + .asInstanceOf[Iterator[StoredNode]] + } + final def _evalTypeIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 13) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _importsOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 14) + .asInstanceOf[Iterator[StoredNode]] + } + final def _importsIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 14) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _inheritsFromOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 15) + .asInstanceOf[Iterator[StoredNode]] + } + final def _inheritsFromIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 15) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _isCallForImportOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 16) + .asInstanceOf[Iterator[StoredNode]] + } + final def _isCallForImportIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 16) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _parameterLinkOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 17) + .asInstanceOf[Iterator[StoredNode]] + } + final def _parameterLinkIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 17) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _postDominateOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 18) + .asInstanceOf[Iterator[StoredNode]] + } + final def _postDominateIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 18) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _reachingDefOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 19) + .asInstanceOf[Iterator[StoredNode]] + } + final def _reachingDefIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 19) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _receiverOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 20) + .asInstanceOf[Iterator[StoredNode]] + } + final def _receiverIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 20) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _refOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 21) + .asInstanceOf[Iterator[StoredNode]] + } + final def _refIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 21) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _sourceFileOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 22) + .asInstanceOf[Iterator[StoredNode]] + } + final def _sourceFileIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 22) + .asInstanceOf[Iterator[StoredNode]] + } + + final def _taggedByOut: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsOut(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 23) + .asInstanceOf[Iterator[StoredNode]] + } + final def _taggedByIn: Iterator[StoredNode] = { + flatgraph.Accessors + .getNeighborsIn(this.graph, nodeKind = this.nodeKind, seq = this.seq, edgeKind = 23) + .asInstanceOf[Iterator[StoredNode]] + } } diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala index 04861adaa..1aa76f36a 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Tag.scala @@ -24,12 +24,16 @@ object Tag { val Label = "TAG" } -/** Node properties: - * - Name - * - Value +/** * NODE PROPERTIES: + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Value (String); Cardinality `one` (mandatory with default value ``); This property denotes a string value as used + * in a key-value pair. */ class Tag(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 34.toShort, seq_4762) + extends StoredNode(graph_4762, 34, seq_4762) with TagBase with StaticType[TagEMT] { @@ -52,133 +56,3 @@ class Tag(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Tag] } - -object NewTag { - def apply(): NewTag = new NewTag - private val outNeighbors: Map[String, Set[String]] = Map("TAGGED_BY" -> Set("TAG")) - private val inNeighbors: Map[String, Set[String]] = Map( - "TAGGED_BY" -> Set( - "BLOCK", - "CALL", - "CONTROL_STRUCTURE", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "RETURN", - "TAG", - "TEMPLATE_DOM", - "TYPE_DECL", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Tag_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTag => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Tag_value extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTag => - dstCast(offset) = generated.value - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewTag extends NewNode(34.toShort) with TagBase { - override type StoredNodeType = Tag - override def label: String = "TAG" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTag.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTag.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var name: String = "": String - var value: String = "": String - def name(value: String): this.type = { this.name = value; this } - def value(value: String): this.type = { this.value = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 38, 1) - interface.countProperty(this, 49, 1) - } - - override def copy: this.type = { - val newInstance = new NewTag - newInstance.name = this.name - newInstance.value = this.value - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "name" - case 1 => "value" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.name - case 1 => this.value - case _ => null - } - - override def productPrefix = "NewTag" - override def productArity = 2 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTag] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala index 07c334093..52ebcb4b1 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TagNodePair.scala @@ -25,15 +25,30 @@ object TagNodePair { val Label = "TAG_NODE_PAIR" } -/** Anynode - * - Tag +/** * CONTAINED NODES: + * + * ▸ node (Anynode); Cardinality `one` (mandatory with default value `null`) + * + * ▸ tag (Tag); Cardinality `one` (mandatory with default value `null`) */ class TagNodePair(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 35.toShort, seq_4762) + extends StoredNode(graph_4762, 35, seq_4762) with TagNodePairBase with StaticType[TagNodePairEMT] { - def node: StoredNode = flatgraph.Accessors.getNodePropertySingle(graph, nodeKind, 53, seq, null: StoredNode) - def tag: Tag = flatgraph.Accessors.getNodePropertySingle(graph, nodeKind, 54, seq, null: Tag) + def node: StoredNode = flatgraph.Accessors.getNodePropertySingle( + graph, + nodeKind = nodeKind, + propertyKind = 53, + seq = seq, + default = null: StoredNode + ) + def tag: Tag = flatgraph.Accessors.getNodePropertySingle( + graph, + nodeKind = nodeKind, + propertyKind = 54, + seq = seq, + default = null: Tag + ) override def productElementName(n: Int): String = n match { @@ -54,114 +69,3 @@ class TagNodePair(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[TagNodePair] } - -object NewTagNodePair { - def apply(): NewTagNodePair = new NewTagNodePair - private val outNeighbors: Map[String, Set[String]] = Map() - private val inNeighbors: Map[String, Set[String]] = Map() - - object InsertionHelpers { - object NewNodeInserter_TagNodePair_node extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTagNodePair => - dstCast(offset) = generated.node match { - case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; case null => null - } - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TagNodePair_tag extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[flatgraph.GNode]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTagNodePair => - dstCast(offset) = generated.tag match { - case newV: flatgraph.DNode => newV.storedRef.get; case oldV: flatgraph.GNode => oldV; case null => null - } - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewTagNodePair extends NewNode(35.toShort) with TagNodePairBase { - override type StoredNodeType = TagNodePair - override def label: String = "TAG_NODE_PAIR" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTagNodePair.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTagNodePair.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var node: AbstractNode = null - var tag: TagBase = null - def node(value: AbstractNode): this.type = { this.node = value; this } - def tag(value: TagBase): this.type = { this.tag = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 53, 1) - interface.visitContainedNode(node) - interface.countProperty(this, 54, 1) - interface.visitContainedNode(tag) - } - - override def copy: this.type = { - val newInstance = new NewTagNodePair - newInstance.node = this.node - newInstance.tag = this.tag - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "node" - case 1 => "tag" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.node - case 1 => this.tag - case _ => null - } - - override def productPrefix = "NewTagNodePair" - override def productArity = 2 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTagNodePair] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala index 940968611..9a1fb67e2 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TemplateDom.scala @@ -31,19 +31,46 @@ object TemplateDom { val Label = "TEMPLATE_DOM" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class TemplateDom(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 36.toShort, seq_4762) + extends StoredNode(graph_4762, 36, seq_4762) with TemplateDomBase with Expression with StaticType[TemplateDomEMT] { @@ -81,1581 +108,3 @@ class TemplateDom(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[TemplateDom] } - -object NewTemplateDom { - def apply(): NewTemplateDom = new NewTemplateDom - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_TemplateDom_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TemplateDom_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTemplateDom => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewTemplateDom extends NewNode(36.toShort) with TemplateDomBase with ExpressionNew { - override type StoredNodeType = TemplateDom - override def label: String = "TEMPLATE_DOM" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTemplateDom.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTemplateDom.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewTemplateDom - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "lineNumber" - case 5 => "name" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.lineNumber - case 5 => this.name - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case _ => null - } - - override def productPrefix = "NewTemplateDom" - override def productArity = 9 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTemplateDom] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala index b7985d896..bad83ed7a 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Type.scala @@ -25,13 +25,21 @@ object Type { val Label = "TYPE" } -/** Node properties: - * - FullName - * - Name - * - TypeDeclFullName +/** * NODE PROPERTIES: + * + * ▸ FullName (String); Cardinality `one` (mandatory with default value ``); This is the fully-qualified name of + * an entity, e.g., the fully-qualified name of a method or type. The details of what constitutes a fully-qualified + * name are language specific. This field SHOULD be human readable. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ TypeDeclFullName (String); Cardinality `one` (mandatory with default value ``); The static type decl of a + * TYPE. This property is matched against the FULL_NAME of TYPE_DECL nodes. It is required to have exactly one + * TYPE_DECL for each different TYPE_DECL_FULL_NAME */ class Type(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 37.toShort, seq_4762) + extends StoredNode(graph_4762, 37, seq_4762) with TypeBase with StaticType[TypeEMT] { @@ -56,159 +64,3 @@ class Type(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Type] } - -object NewType { - def apply(): NewType = new NewType - private val outNeighbors: Map[String, Set[String]] = Map("AST" -> Set("TYPE_ARGUMENT"), "REF" -> Set("TYPE_DECL")) - private val inNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE_DECL"), - "EVAL_TYPE" -> Set( - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CONTROL_STRUCTURE", - "IDENTIFIER", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "TYPE_REF", - "UNKNOWN" - ), - "INHERITS_FROM" -> Set("TYPE_DECL"), - "REF" -> Set("TYPE_ARGUMENT") - ) - - object InsertionHelpers { - object NewNodeInserter_Type_fullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewType => - dstCast(offset) = generated.fullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Type_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewType => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Type_typeDeclFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewType => - dstCast(offset) = generated.typeDeclFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewType extends NewNode(37.toShort) with TypeBase { - override type StoredNodeType = Type - override def label: String = "TYPE" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewType.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewType.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var fullName: String = "": String - var name: String = "": String - var typeDeclFullName: String = "": String - def fullName(value: String): this.type = { this.fullName = value; this } - def name(value: String): this.type = { this.name = value; this } - def typeDeclFullName(value: String): this.type = { this.typeDeclFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 21, 1) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 47, 1) - } - - override def copy: this.type = { - val newInstance = new NewType - newInstance.fullName = this.fullName - newInstance.name = this.name - newInstance.typeDeclFullName = this.typeDeclFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "fullName" - case 1 => "name" - case 2 => "typeDeclFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.fullName - case 1 => this.name - case 2 => this.typeDeclFullName - case _ => null - } - - override def productPrefix = "NewType" - override def productArity = 3 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewType] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala index 268f1a126..3b2ac3788 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeArgument.scala @@ -28,16 +28,32 @@ object TypeArgument { val Label = "TYPE_ARGUMENT" } -/** Node properties: - * - Code - * - ColumnNumber - * - LineNumber - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class TypeArgument(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 38.toShort, seq_4762) + extends StoredNode(graph_4762, 38, seq_4762) with TypeArgumentBase with AstNode with StaticType[TypeArgumentEMT] { @@ -69,1483 +85,3 @@ class TypeArgument(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[TypeArgument] } - -object NewTypeArgument { - def apply(): NewTypeArgument = new NewTypeArgument - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_TypeArgument_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeArgument => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeArgument_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeArgument => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeArgument_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeArgument => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeArgument_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeArgument => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeArgument_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeArgument => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeArgument_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeArgument => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewTypeArgument extends NewNode(38.toShort) with TypeArgumentBase with AstNodeNew { - override type StoredNodeType = TypeArgument - override def label: String = "TYPE_ARGUMENT" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeArgument.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeArgument.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewTypeArgument - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "lineNumber" - case 3 => "offset" - case 4 => "offsetEnd" - case 5 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.lineNumber - case 3 => this.offset - case 4 => this.offsetEnd - case 5 => this.order - case _ => null - } - - override def productPrefix = "NewTypeArgument" - override def productArity = 6 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeArgument] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala index 92dac0809..b3bc27256 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeDecl.scala @@ -49,25 +49,68 @@ object TypeDecl { val Label = "TYPE_DECL" } -/** Node properties: - * - AliasTypeFullName - * - AstParentFullName - * - AstParentType - * - Code - * - ColumnNumber - * - Filename - * - FullName - * - GenericSignature - * - InheritsFromTypeFullName - * - IsExternal - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ AliasTypeFullName (String); Cardinality `ZeroOrOne` (optional); This property holds the fully qualified name of + * the type that the node is a type alias of. + * + * ▸ AstParentFullName (String); Cardinality `one` (mandatory with default value ``); This field holds the + * FULL_NAME of the AST parent of an entity. + * + * ▸ AstParentType (String); Cardinality `one` (mandatory with default value ``); The type of the AST parent. + * Since this is only used in some parts of the graph, the list does not include all possible parents by intention. + * Possible parents: METHOD, TYPE_DECL, NAMESPACE_BLOCK. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ Filename (String); Cardinality `one` (mandatory with default value ``); The path of the source file this + * node was generated from, relative to the root path in the meta data node. This field must be set but may be set to + * the value `` to indicate that no source file can be associated with the node, e.g., because the node + * represents an entity known to exist because it is referenced, but for which the file that is is declared in is + * unknown. + * + * ▸ FullName (String); Cardinality `one` (mandatory with default value ``); This is the fully-qualified name of + * an entity, e.g., the fully-qualified name of a method or type. The details of what constitutes a fully-qualified + * name are language specific. This field SHOULD be human readable. + * + * ▸ GenericSignature (String); Cardinality `one` (mandatory with default value ``); This field is experimental. + * It will likely be removed in the future without any notice. It stores type information for generic types and methods + * as well as type information for members and locals where the type either contains a type parameter reference or an + * instantiated type reference. + * + * ▸ InheritsFromTypeFullName (String); Cardinality `List` (many); The static types a TYPE_DECL inherits from. This + * property is matched against the FULL_NAME of TYPE nodes and thus it is required to have at least one TYPE node for + * each TYPE_FULL_NAME + * + * ▸ IsExternal (Boolean); Cardinality `one` (mandatory with default value `false`); Indicates that the construct + * (METHOD or TYPE_DECL) is external, that is, it is referenced but not defined in the code (applies both to insular + * parsing and to library functions where we have header files only) + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class TypeDecl(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 39.toShort, seq_4762) + extends StoredNode(graph_4762, 39, seq_4762) with TypeDeclBase with AstNode with StaticType[TypeDeclEMT] { @@ -117,1771 +160,3 @@ class TypeDecl(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[TypeDecl] } - -object NewTypeDecl { - def apply(): NewTypeDecl = new NewTypeDecl - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_TypeDecl_aliasTypeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - generated.aliasTypeFullName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_astParentFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.astParentFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_astParentType extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.astParentType - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_filename extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.filename - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_fullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.fullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_genericSignature extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.genericSignature - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_inheritsFromTypeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - for (item <- generated.inheritsFromTypeFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_isExternal extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Boolean]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.isExternal - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeDecl_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeDecl => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewTypeDecl extends NewNode(39.toShort) with TypeDeclBase with AstNodeNew { - override type StoredNodeType = TypeDecl - override def label: String = "TYPE_DECL" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeDecl.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeDecl.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var aliasTypeFullName: Option[String] = None - var astParentFullName: String = "": String - var astParentType: String = "": String - var code: String = "": String - var columnNumber: Option[Int] = None - var filename: String = "": String - var fullName: String = "": String - var genericSignature: String = "": String - var inheritsFromTypeFullName: IndexedSeq[String] = ArraySeq.empty - var isExternal: Boolean = false: Boolean - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def aliasTypeFullName(value: Option[String]): this.type = { this.aliasTypeFullName = value; this } - def aliasTypeFullName(value: String): this.type = { this.aliasTypeFullName = Option(value); this } - def astParentFullName(value: String): this.type = { this.astParentFullName = value; this } - def astParentType(value: String): this.type = { this.astParentType = value; this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def filename(value: String): this.type = { this.filename = value; this } - def fullName(value: String): this.type = { this.fullName = value; this } - def genericSignature(value: String): this.type = { this.genericSignature = value; this } - def inheritsFromTypeFullName(value: IterableOnce[String]): this.type = { - this.inheritsFromTypeFullName = value.iterator.to(ArraySeq); this - } - def isExternal(value: Boolean): this.type = { this.isExternal = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 0, aliasTypeFullName.size) - interface.countProperty(this, 3, 1) - interface.countProperty(this, 4, 1) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 20, 1) - interface.countProperty(this, 21, 1) - interface.countProperty(this, 22, 1) - interface.countProperty(this, 27, inheritsFromTypeFullName.size) - interface.countProperty(this, 29, 1) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewTypeDecl - newInstance.aliasTypeFullName = this.aliasTypeFullName - newInstance.astParentFullName = this.astParentFullName - newInstance.astParentType = this.astParentType - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.filename = this.filename - newInstance.fullName = this.fullName - newInstance.genericSignature = this.genericSignature - newInstance.inheritsFromTypeFullName = this.inheritsFromTypeFullName - newInstance.isExternal = this.isExternal - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "aliasTypeFullName" - case 1 => "astParentFullName" - case 2 => "astParentType" - case 3 => "code" - case 4 => "columnNumber" - case 5 => "filename" - case 6 => "fullName" - case 7 => "genericSignature" - case 8 => "inheritsFromTypeFullName" - case 9 => "isExternal" - case 10 => "lineNumber" - case 11 => "name" - case 12 => "offset" - case 13 => "offsetEnd" - case 14 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.aliasTypeFullName - case 1 => this.astParentFullName - case 2 => this.astParentType - case 3 => this.code - case 4 => this.columnNumber - case 5 => this.filename - case 6 => this.fullName - case 7 => this.genericSignature - case 8 => this.inheritsFromTypeFullName - case 9 => this.isExternal - case 10 => this.lineNumber - case 11 => this.name - case 12 => this.offset - case 13 => this.offsetEnd - case 14 => this.order - case _ => null - } - - override def productPrefix = "NewTypeDecl" - override def productArity = 15 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeDecl] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala index e6d13d146..965bafbeb 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeParameter.scala @@ -29,17 +29,35 @@ object TypeParameter { val Label = "TYPE_PARAMETER" } -/** Node properties: - * - Code - * - ColumnNumber - * - LineNumber - * - Name - * - Offset - * - OffsetEnd - * - Order +/** * NODE PROPERTIES: + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Name (String); Cardinality `one` (mandatory with default value ``); Name of represented object, e.g., + * method name (e.g. "run") + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. */ class TypeParameter(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 40.toShort, seq_4762) + extends StoredNode(graph_4762, 40, seq_4762) with TypeParameterBase with AstNode with StaticType[TypeParameterEMT] { @@ -73,1514 +91,3 @@ class TypeParameter(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[TypeParameter] } - -object NewTypeParameter { - def apply(): NewTypeParameter = new NewTypeParameter - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_TypeParameter_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeParameter => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeParameter_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeParameter => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeParameter_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeParameter => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeParameter_name extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeParameter => - dstCast(offset) = generated.name - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeParameter_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeParameter => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeParameter_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeParameter => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeParameter_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeParameter => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewTypeParameter extends NewNode(40.toShort) with TypeParameterBase with AstNodeNew { - override type StoredNodeType = TypeParameter - override def label: String = "TYPE_PARAMETER" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeParameter.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeParameter.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var code: String = "": String - var columnNumber: Option[Int] = None - var lineNumber: Option[Int] = None - var name: String = "": String - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def name(value: String): this.type = { this.name = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 38, 1) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - } - - override def copy: this.type = { - val newInstance = new NewTypeParameter - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.lineNumber = this.lineNumber - newInstance.name = this.name - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "code" - case 1 => "columnNumber" - case 2 => "lineNumber" - case 3 => "name" - case 4 => "offset" - case 5 => "offsetEnd" - case 6 => "order" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.code - case 1 => this.columnNumber - case 2 => this.lineNumber - case 3 => this.name - case 4 => this.offset - case 5 => this.offsetEnd - case 6 => this.order - case _ => null - } - - override def productPrefix = "NewTypeParameter" - override def productArity = 7 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeParameter] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala index ba3057f22..eaeec1bdd 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/TypeRef.scala @@ -40,21 +40,55 @@ object TypeRef { val Label = "TYPE_REF" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - DynamicTypeHintFullName - * - LineNumber - * - Offset - * - OffsetEnd - * - Order - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class TypeRef(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 41.toShort, seq_4762) + extends StoredNode(graph_4762, 41, seq_4762) with TypeRefBase with Expression with StaticType[TypeRefEMT] { @@ -96,1649 +130,3 @@ class TypeRef(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[TypeRef] } - -object NewTypeRef { - def apply(): NewTypeRef = new NewTypeRef - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_TypeRef_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_TypeRef_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewTypeRef => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewTypeRef extends NewNode(41.toShort) with TypeRefBase with ExpressionNew { - override type StoredNodeType = TypeRef - override def label: String = "TYPE_REF" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeRef.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewTypeRef.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewTypeRef - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "dynamicTypeHintFullName" - case 5 => "lineNumber" - case 6 => "offset" - case 7 => "offsetEnd" - case 8 => "order" - case 9 => "possibleTypes" - case 10 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.dynamicTypeHintFullName - case 5 => this.lineNumber - case 6 => this.offset - case 7 => this.offsetEnd - case 8 => this.order - case 9 => this.possibleTypes - case 10 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewTypeRef" - override def productArity = 11 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewTypeRef] -} diff --git a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala index 99dfdab53..4f6b288e3 100644 --- a/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala +++ b/domainClasses/src/main/generated/io/shiftleft/codepropertygraph/generated/nodes/Unknown.scala @@ -44,23 +44,62 @@ object Unknown { val Label = "UNKNOWN" } -/** Node properties: - * - ArgumentIndex - * - ArgumentName - * - Code - * - ColumnNumber - * - ContainedRef - * - DynamicTypeHintFullName - * - LineNumber - * - Offset - * - OffsetEnd - * - Order - * - ParserTypeName - * - PossibleTypes - * - TypeFullName +/** * NODE PROPERTIES: + * + * ▸ ArgumentIndex (Int); Cardinality `one` (mandatory with default value `-1`); AST-children of CALL nodes have an + * argument index, that is used to match call-site arguments with callee parameters. Explicit parameters are numbered + * from 1 to N, while index 0 is reserved for implicit self / this parameter. CALLs without implicit parameter + * therefore have arguments starting with index 1. AST-children of BLOCK nodes may have an argument index as well; in + * this case, the last argument index determines the return expression of a BLOCK expression. If the `PARAMETER_NAME` + * field is set, then the `ARGUMENT_INDEX` field is ignored. It is suggested to set it to -1. + * + * ▸ ArgumentName (String); Cardinality `ZeroOrOne` (optional); For calls involving named parameters, the + * `ARGUMENT_NAME` field holds the name of the parameter initialized by the expression. For all other calls, this field + * is unset. + * + * ▸ Code (String); Cardinality `one` (mandatory with default value ``); This field holds the code snippet that + * the node represents. + * + * ▸ ColumnNumber (Int); Cardinality `ZeroOrOne` (optional); This optional fields provides the column number of the + * program construct represented by the node. + * + * ▸ ContainedRef (String); Cardinality `one` (mandatory with default value ``); References to other nodes. This + * is not a real property; it exists here for the sake of proto serialization only. valueType and cardinality are + * meaningless. + * + * ▸ DynamicTypeHintFullName (String); Cardinality `List` (many); Type hint for the dynamic type. These are observed to + * be verifiable at runtime. + * + * ▸ LineNumber (Int); Cardinality `ZeroOrOne` (optional); This optional field provides the line number of the program + * construct represented by the node. + * + * ▸ Offset (Int); Cardinality `ZeroOrOne` (optional); Start offset into the CONTENT property of the corresponding FILE + * node. The offset is such that parts of the content can easily be accessed via + * `content.substring(offset, offsetEnd)`. This means that the offset must be measured in utf16 encoding (i.e. neither + * in characters/codeunits nor in byte-offsets into a utf8 encoding). E.g. for METHOD nodes this start offset points to + * the start of the methods source code in the string holding the source code of the entire file. + * + * ▸ OffsetEnd (Int); Cardinality `ZeroOrOne` (optional); End offset (exclusive) into the CONTENT property of the + * corresponding FILE node. See OFFSET documentation for finer details. E.g. for METHOD nodes this end offset points to + * the first code position which is not part of the method. + * + * ▸ Order (Int); Cardinality `one` (mandatory with default value `-1`); This integer indicates the position of the + * node among its siblings in the AST. The left-most child has an order of 0. + * + * ▸ ParserTypeName (String); Cardinality `one` (mandatory with default value ``); AST node type name emitted by + * parser. + * + * ▸ PossibleTypes (String); Cardinality `List` (many); Similar to `DYNAMIC_TYPE_HINT_FULL_NAME`, but that this makes + * no guarantee that types within this property are correct. This property is used to capture observations between node + * interactions during a 'may-analysis'. + * + * ▸ TypeFullName (String); Cardinality `one` (mandatory with default value ``); This field contains the + * fully-qualified static type name of the program construct represented by a node. It is the name of an instantiated + * type, e.g., `java.util.List`, rather than `java.util.List[T]`. If the type cannot be determined, this field + * should be set to the empty string. */ class Unknown(graph_4762: flatgraph.Graph, seq_4762: Int) - extends StoredNode(graph_4762, 42.toShort, seq_4762) + extends StoredNode(graph_4762, 42, seq_4762) with UnknownBase with Expression with StaticType[UnknownEMT] { @@ -106,1711 +145,3 @@ class Unknown(graph_4762: flatgraph.Graph, seq_4762: Int) override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[Unknown] } - -object NewUnknown { - def apply(): NewUnknown = new NewUnknown - private val outNeighbors: Map[String, Set[String]] = Map( - "ALIAS_OF" -> Set("TYPE"), - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS" -> Set("BINDING"), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CAPTURE" -> Set("CLOSURE_BINDING"), - "CAPTURED_BY" -> Set("CLOSURE_BINDING"), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "EVAL_TYPE" -> Set("TYPE"), - "IMPORTS" -> Set("DEPENDENCY"), - "INHERITS_FROM" -> Set("TYPE"), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "TAGGED_BY" -> Set("TAG") - ) - private val inNeighbors: Map[String, Set[String]] = Map( - "ARGUMENT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "AST" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "BINDS_TO" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CALL" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CDG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CFG" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONDITION" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "CONTAINS" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "IS_CALL_FOR_IMPORT" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "PARAMETER_LINK" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "POST_DOMINATE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REACHING_DEF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "RECEIVER" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "REF" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BINDING", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "CLOSURE_BINDING", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ), - "SOURCE_FILE" -> Set( - "ANNOTATION", - "ANNOTATION_LITERAL", - "ANNOTATION_PARAMETER", - "ANNOTATION_PARAMETER_ASSIGN", - "ARRAY_INITIALIZER", - "BLOCK", - "CALL", - "CALL_REPR", - "CFG_NODE", - "COMMENT", - "CONTROL_STRUCTURE", - "EXPRESSION", - "FIELD_IDENTIFIER", - "FILE", - "IDENTIFIER", - "IMPORT", - "JUMP_LABEL", - "JUMP_TARGET", - "LITERAL", - "LOCAL", - "MEMBER", - "METHOD", - "METHOD_PARAMETER_IN", - "METHOD_PARAMETER_OUT", - "METHOD_REF", - "METHOD_RETURN", - "MODIFIER", - "NAMESPACE", - "NAMESPACE_BLOCK", - "RETURN", - "TEMPLATE_DOM", - "TYPE_ARGUMENT", - "TYPE_DECL", - "TYPE_PARAMETER", - "TYPE_REF", - "UNKNOWN" - ) - ) - - object InsertionHelpers { - object NewNodeInserter_Unknown_argumentIndex extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - dstCast(offset) = generated.argumentIndex - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_argumentName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - generated.argumentName match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_code extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - dstCast(offset) = generated.code - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_columnNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - generated.columnNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_containedRef extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - dstCast(offset) = generated.containedRef - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_dynamicTypeHintFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - for (item <- generated.dynamicTypeHintFullName) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_lineNumber extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - generated.lineNumber match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_offset extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - generated.offset match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_offsetEnd extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - generated.offsetEnd match { - case Some(item) => - dstCast(offset) = item - offset += 1 - case _ => - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_order extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[Int]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - dstCast(offset) = generated.order - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_parserTypeName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - dstCast(offset) = generated.parserTypeName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_possibleTypes extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - for (item <- generated.possibleTypes) { - dstCast(offset) = item - offset += 1 - } - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - object NewNodeInserter_Unknown_typeFullName extends flatgraph.NewNodePropertyInsertionHelper { - override def insertNewNodeProperties( - newNodes: mutable.ArrayBuffer[flatgraph.DNode], - dst: AnyRef, - offsets: Array[Int] - ): Unit = { - if (newNodes.isEmpty) return - val dstCast = dst.asInstanceOf[Array[String]] - val seq = newNodes.head.storedRef.get.seq() - var offset = offsets(seq) - var idx = 0 - while (idx < newNodes.length) { - val nn = newNodes(idx) - nn match { - case generated: NewUnknown => - dstCast(offset) = generated.typeFullName - offset += 1 - case _ => - } - assert(seq + idx == nn.storedRef.get.seq(), "internal consistency check") - idx += 1 - offsets(idx + seq) = offset - } - } - } - } -} - -class NewUnknown extends NewNode(42.toShort) with UnknownBase with ExpressionNew { - override type StoredNodeType = Unknown - override def label: String = "UNKNOWN" - - override def isValidOutNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewUnknown.outNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - override def isValidInNeighbor(edgeLabel: String, n: NewNode): Boolean = { - NewUnknown.inNeighbors.getOrElse(edgeLabel, Set.empty).contains(n.label) - } - - var argumentIndex: Int = -1: Int - var argumentName: Option[String] = None - var code: String = "": String - var columnNumber: Option[Int] = None - var containedRef: String = "": String - var dynamicTypeHintFullName: IndexedSeq[String] = ArraySeq.empty - var lineNumber: Option[Int] = None - var offset: Option[Int] = None - var offsetEnd: Option[Int] = None - var order: Int = -1: Int - var parserTypeName: String = "": String - var possibleTypes: IndexedSeq[String] = ArraySeq.empty - var typeFullName: String = "": String - def argumentIndex(value: Int): this.type = { this.argumentIndex = value; this } - def argumentName(value: Option[String]): this.type = { this.argumentName = value; this } - def argumentName(value: String): this.type = { this.argumentName = Option(value); this } - def code(value: String): this.type = { this.code = value; this } - def columnNumber(value: Int): this.type = { this.columnNumber = Option(value); this } - def columnNumber(value: Option[Int]): this.type = { this.columnNumber = value; this } - def containedRef(value: String): this.type = { this.containedRef = value; this } - def dynamicTypeHintFullName(value: IterableOnce[String]): this.type = { - this.dynamicTypeHintFullName = value.iterator.to(ArraySeq); this - } - def lineNumber(value: Int): this.type = { this.lineNumber = Option(value); this } - def lineNumber(value: Option[Int]): this.type = { this.lineNumber = value; this } - def offset(value: Int): this.type = { this.offset = Option(value); this } - def offset(value: Option[Int]): this.type = { this.offset = value; this } - def offsetEnd(value: Int): this.type = { this.offsetEnd = Option(value); this } - def offsetEnd(value: Option[Int]): this.type = { this.offsetEnd = value; this } - def order(value: Int): this.type = { this.order = value; this } - def parserTypeName(value: String): this.type = { this.parserTypeName = value; this } - def possibleTypes(value: IterableOnce[String]): this.type = { this.possibleTypes = value.iterator.to(ArraySeq); this } - def typeFullName(value: String): this.type = { this.typeFullName = value; this } - override def countAndVisitProperties(interface: flatgraph.BatchedUpdateInterface): Unit = { - interface.countProperty(this, 1, 1) - interface.countProperty(this, 2, argumentName.size) - interface.countProperty(this, 8, 1) - interface.countProperty(this, 9, columnNumber.size) - interface.countProperty(this, 11, 1) - interface.countProperty(this, 16, dynamicTypeHintFullName.size) - interface.countProperty(this, 34, lineNumber.size) - interface.countProperty(this, 39, offset.size) - interface.countProperty(this, 40, offsetEnd.size) - interface.countProperty(this, 41, 1) - interface.countProperty(this, 43, 1) - interface.countProperty(this, 44, possibleTypes.size) - interface.countProperty(this, 48, 1) - } - - override def copy: this.type = { - val newInstance = new NewUnknown - newInstance.argumentIndex = this.argumentIndex - newInstance.argumentName = this.argumentName - newInstance.code = this.code - newInstance.columnNumber = this.columnNumber - newInstance.containedRef = this.containedRef - newInstance.dynamicTypeHintFullName = this.dynamicTypeHintFullName - newInstance.lineNumber = this.lineNumber - newInstance.offset = this.offset - newInstance.offsetEnd = this.offsetEnd - newInstance.order = this.order - newInstance.parserTypeName = this.parserTypeName - newInstance.possibleTypes = this.possibleTypes - newInstance.typeFullName = this.typeFullName - newInstance.asInstanceOf[this.type] - } - - override def productElementName(n: Int): String = - n match { - case 0 => "argumentIndex" - case 1 => "argumentName" - case 2 => "code" - case 3 => "columnNumber" - case 4 => "containedRef" - case 5 => "dynamicTypeHintFullName" - case 6 => "lineNumber" - case 7 => "offset" - case 8 => "offsetEnd" - case 9 => "order" - case 10 => "parserTypeName" - case 11 => "possibleTypes" - case 12 => "typeFullName" - case _ => "" - } - - override def productElement(n: Int): Any = - n match { - case 0 => this.argumentIndex - case 1 => this.argumentName - case 2 => this.code - case 3 => this.columnNumber - case 4 => this.containedRef - case 5 => this.dynamicTypeHintFullName - case 6 => this.lineNumber - case 7 => this.offset - case 8 => this.offsetEnd - case 9 => this.order - case 10 => this.parserTypeName - case 11 => this.possibleTypes - case 12 => this.typeFullName - case _ => null - } - - override def productPrefix = "NewUnknown" - override def productArity = 13 - override def canEqual(that: Any): Boolean = that != null && that.isInstanceOf[NewUnknown] -}