diff --git a/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/go.dbscheme b/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/go.dbscheme new file mode 100644 index 000000000000..a58b81b1b4c4 --- /dev/null +++ b/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/go.dbscheme @@ -0,0 +1,546 @@ +/** Auto-generated dbscheme; do not edit. */ + + +/** Duplicate code **/ + +duplicateCode( + unique int id : @duplication, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +similarCode( + unique int id : @similarity, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +@duplication_or_similarity = @duplication | @similarity; + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref); + +/** External data **/ + +externalData( + int id : @externalDataElement, + varchar(900) path : string ref, + int column: int ref, + varchar(900) value : string ref +); + +snapshotDate(unique date snapshotDate : date ref); + +sourceLocationPrefix(varchar(900) prefix : string ref); + + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +compilations(unique int id: @compilation, string cwd: string ref); + +#keyset[id, num] +compilation_args(int id: @compilation ref, int num: int ref, string arg: string ref); + +#keyset[id, num, kind] +compilation_time(int id: @compilation ref, int num: int ref, int kind: int ref, float secs: float ref); + +diagnostic_for(unique int diagnostic: @diagnostic ref, int compilation: @compilation ref, int file_number: int ref, int file_number_diagnostic_number: int ref); + +compilation_finished(unique int id: @compilation ref, float cpu_seconds: float ref, float elapsed_seconds: float ref); + +#keyset[id, num] +compilation_compiling_files(int id: @compilation ref, int num: int ref, int file: @file ref); + +diagnostics(unique int id: @diagnostic, int severity: int ref, string error_tag: string ref, string error_message: string ref, + string full_error_message: string ref, int location: @location ref); + +locations_default(unique int id: @location_default, int file: @file ref, int beginLine: int ref, int beginColumn: int ref, + int endLine: int ref, int endColumn: int ref); + +numlines(int element_id: @sourceline ref, int num_lines: int ref, int num_code: int ref, int num_comment: int ref); + +files(unique int id: @file, string name: string ref); + +folders(unique int id: @folder, string name: string ref); + +containerparent(int parent: @container ref, unique int child: @container ref); + +has_location(unique int locatable: @locatable ref, int location: @location ref); + +#keyset[parent, idx] +comment_groups(unique int id: @comment_group, int parent: @file ref, int idx: int ref); + +comments(unique int id: @comment, int kind: int ref, int parent: @comment_group ref, int idx: int ref, string text: string ref); + +doc_comments(unique int node: @documentable ref, int comment: @comment_group ref); + +#keyset[parent, idx] +exprs(unique int id: @expr, int kind: int ref, int parent: @exprparent ref, int idx: int ref); + +literals(unique int expr: @expr ref, string value: string ref, string raw: string ref); + +constvalues(unique int expr: @expr ref, string value: string ref, string exact: string ref); + +fields(unique int id: @field, int parent: @fieldparent ref, int idx: int ref); + +typeparamdecls(unique int id: @typeparamdecl, int parent: @typeparamdeclparent ref, int idx: int ref); + +#keyset[parent, idx] +stmts(unique int id: @stmt, int kind: int ref, int parent: @stmtparent ref, int idx: int ref); + +#keyset[parent, idx] +decls(unique int id: @decl, int kind: int ref, int parent: @declparent ref, int idx: int ref); + +#keyset[parent, idx] +specs(unique int id: @spec, int kind: int ref, int parent: @gendecl ref, int idx: int ref); + +scopes(unique int id: @scope, int kind: int ref); + +scopenesting(unique int inner: @scope ref, int outer: @scope ref); + +scopenodes(unique int node: @scopenode ref, int scope: @localscope ref); + +objects(unique int id: @object, int kind: int ref, string name: string ref); + +objectscopes(unique int object: @object ref, int scope: @scope ref); + +objecttypes(unique int object: @object ref, int tp: @type ref); + +methodreceivers(unique int method: @object ref, int receiver: @object ref); + +fieldstructs(unique int field: @object ref, int struct: @structtype ref); + +methodhosts(int method: @object ref, int host: @namedtype ref); + +defs(int ident: @ident ref, int object: @object ref); + +uses(int ident: @ident ref, int object: @object ref); + +types(unique int id: @type, int kind: int ref); + +type_of(unique int expr: @expr ref, int tp: @type ref); + +typename(unique int tp: @type ref, string name: string ref); + +key_type(unique int map: @maptype ref, int tp: @type ref); + +element_type(unique int container: @containertype ref, int tp: @type ref); + +base_type(unique int ptr: @pointertype ref, int tp: @type ref); + +underlying_type(unique int named: @namedtype ref, int tp: @type ref); + +#keyset[parent, index] +component_types(int parent: @compositetype ref, int index: int ref, string name: string ref, int tp: @type ref); + +array_length(unique int tp: @arraytype ref, string len: string ref); + +type_objects(unique int tp: @type ref, int object: @object ref); + +packages(unique int id: @package, string name: string ref, string path: string ref, int scope: @packagescope ref); + +#keyset[parent, idx] +modexprs(unique int id: @modexpr, int kind: int ref, int parent: @modexprparent ref, int idx: int ref); + +#keyset[parent, idx] +modtokens(string token: string ref, int parent: @modexpr ref, int idx: int ref); + +#keyset[package, idx] +errors(unique int id: @error, int kind: int ref, string msg: string ref, string rawpos: string ref, + string file: string ref, int line: int ref, int col: int ref, int package: @package ref, int idx: int ref); + +has_ellipsis(int id: @callorconversionexpr ref); + +variadic(int id: @signaturetype ref); + +#keyset[parent, idx] +typeparam(unique int tp: @typeparamtype ref, string name: string ref, int bound: @compositetype ref, + int parent: @typeparamparentobject ref, int idx: int ref); + +@container = @file | @folder; + +@locatable = @xmllocatable | @node | @localscope; + +@node = @documentable | @exprparent | @modexprparent | @fieldparent | @stmtparent | @declparent | @typeparamdeclparent + | @scopenode | @comment_group | @comment; + +@documentable = @file | @field | @typeparamdecl | @spec | @gendecl | @funcdecl | @modexpr; + +@exprparent = @funcdef | @file | @expr | @field | @stmt | @decl | @typeparamdecl | @spec; + +@modexprparent = @file | @modexpr; + +@fieldparent = @decl | @structtypeexpr | @functypeexpr | @interfacetypeexpr; + +@stmtparent = @funcdef | @stmt | @decl; + +@declparent = @file | @declstmt; + +@typeparamdeclparent = @funcdecl | @typespec; + +@funcdef = @funclit | @funcdecl; + +@scopenode = @file | @functypeexpr | @blockstmt | @ifstmt | @caseclause | @switchstmt | @commclause | @loopstmt; + +@location = @location_default; + +@sourceline = @locatable; + +case @comment.kind of + 0 = @slashslashcomment +| 1 = @slashstarcomment; + +case @expr.kind of + 0 = @badexpr +| 1 = @ident +| 2 = @ellipsis +| 3 = @intlit +| 4 = @floatlit +| 5 = @imaglit +| 6 = @charlit +| 7 = @stringlit +| 8 = @funclit +| 9 = @compositelit +| 10 = @parenexpr +| 11 = @selectorexpr +| 12 = @indexexpr +| 13 = @genericfunctioninstantiationexpr +| 14 = @generictypeinstantiationexpr +| 15 = @sliceexpr +| 16 = @typeassertexpr +| 17 = @callorconversionexpr +| 18 = @starexpr +| 19 = @keyvalueexpr +| 20 = @arraytypeexpr +| 21 = @structtypeexpr +| 22 = @functypeexpr +| 23 = @interfacetypeexpr +| 24 = @maptypeexpr +| 25 = @typesetliteralexpr +| 26 = @plusexpr +| 27 = @minusexpr +| 28 = @notexpr +| 29 = @complementexpr +| 30 = @derefexpr +| 31 = @addressexpr +| 32 = @arrowexpr +| 33 = @lorexpr +| 34 = @landexpr +| 35 = @eqlexpr +| 36 = @neqexpr +| 37 = @lssexpr +| 38 = @leqexpr +| 39 = @gtrexpr +| 40 = @geqexpr +| 41 = @addexpr +| 42 = @subexpr +| 43 = @orexpr +| 44 = @xorexpr +| 45 = @mulexpr +| 46 = @quoexpr +| 47 = @remexpr +| 48 = @shlexpr +| 49 = @shrexpr +| 50 = @andexpr +| 51 = @andnotexpr +| 52 = @sendchantypeexpr +| 53 = @recvchantypeexpr +| 54 = @sendrcvchantypeexpr; + +@basiclit = @intlit | @floatlit | @imaglit | @charlit | @stringlit; + +@operatorexpr = @logicalexpr | @arithmeticexpr | @bitwiseexpr | @unaryexpr | @binaryexpr; + +@logicalexpr = @logicalunaryexpr | @logicalbinaryexpr; + +@arithmeticexpr = @arithmeticunaryexpr | @arithmeticbinaryexpr; + +@bitwiseexpr = @bitwiseunaryexpr | @bitwisebinaryexpr; + +@unaryexpr = @logicalunaryexpr | @bitwiseunaryexpr | @arithmeticunaryexpr | @derefexpr | @addressexpr | @arrowexpr; + +@logicalunaryexpr = @notexpr; + +@bitwiseunaryexpr = @complementexpr; + +@arithmeticunaryexpr = @plusexpr | @minusexpr; + +@binaryexpr = @logicalbinaryexpr | @bitwisebinaryexpr | @arithmeticbinaryexpr | @comparison; + +@logicalbinaryexpr = @lorexpr | @landexpr; + +@bitwisebinaryexpr = @shiftexpr | @orexpr | @xorexpr | @andexpr | @andnotexpr; + +@arithmeticbinaryexpr = @addexpr | @subexpr | @mulexpr | @quoexpr | @remexpr; + +@shiftexpr = @shlexpr | @shrexpr; + +@comparison = @equalitytest | @relationalcomparison; + +@equalitytest = @eqlexpr | @neqexpr; + +@relationalcomparison = @lssexpr | @leqexpr | @gtrexpr | @geqexpr; + +@chantypeexpr = @sendchantypeexpr | @recvchantypeexpr | @sendrcvchantypeexpr; + +case @stmt.kind of + 0 = @badstmt +| 1 = @declstmt +| 2 = @emptystmt +| 3 = @labeledstmt +| 4 = @exprstmt +| 5 = @sendstmt +| 6 = @incstmt +| 7 = @decstmt +| 8 = @gostmt +| 9 = @deferstmt +| 10 = @returnstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @gotostmt +| 14 = @fallthroughstmt +| 15 = @blockstmt +| 16 = @ifstmt +| 17 = @caseclause +| 18 = @exprswitchstmt +| 19 = @typeswitchstmt +| 20 = @commclause +| 21 = @selectstmt +| 22 = @forstmt +| 23 = @rangestmt +| 24 = @assignstmt +| 25 = @definestmt +| 26 = @addassignstmt +| 27 = @subassignstmt +| 28 = @mulassignstmt +| 29 = @quoassignstmt +| 30 = @remassignstmt +| 31 = @andassignstmt +| 32 = @orassignstmt +| 33 = @xorassignstmt +| 34 = @shlassignstmt +| 35 = @shrassignstmt +| 36 = @andnotassignstmt; + +@incdecstmt = @incstmt | @decstmt; + +@assignment = @simpleassignstmt | @compoundassignstmt; + +@simpleassignstmt = @assignstmt | @definestmt; + +@compoundassignstmt = @addassignstmt | @subassignstmt | @mulassignstmt | @quoassignstmt | @remassignstmt + | @andassignstmt | @orassignstmt | @xorassignstmt | @shlassignstmt | @shrassignstmt | @andnotassignstmt; + +@branchstmt = @breakstmt | @continuestmt | @gotostmt | @fallthroughstmt; + +@switchstmt = @exprswitchstmt | @typeswitchstmt; + +@loopstmt = @forstmt | @rangestmt; + +case @decl.kind of + 0 = @baddecl +| 1 = @importdecl +| 2 = @constdecl +| 3 = @typedecl +| 4 = @vardecl +| 5 = @funcdecl; + +@gendecl = @importdecl | @constdecl | @typedecl | @vardecl; + +case @spec.kind of + 0 = @importspec +| 1 = @valuespec +| 2 = @typedefspec +| 3 = @aliasspec; + +@typespec = @typedefspec | @aliasspec; + +case @object.kind of + 0 = @pkgobject +| 1 = @decltypeobject +| 2 = @builtintypeobject +| 3 = @declconstobject +| 4 = @builtinconstobject +| 5 = @declvarobject +| 6 = @declfunctionobject +| 7 = @builtinfunctionobject +| 8 = @labelobject; + +@typeparamparentobject = @decltypeobject | @declfunctionobject; + +@declobject = @decltypeobject | @declconstobject | @declvarobject | @declfunctionobject; + +@builtinobject = @builtintypeobject | @builtinconstobject | @builtinfunctionobject; + +@typeobject = @decltypeobject | @builtintypeobject; + +@valueobject = @constobject | @varobject | @functionobject; + +@constobject = @declconstobject | @builtinconstobject; + +@varobject = @declvarobject; + +@functionobject = @declfunctionobject | @builtinfunctionobject; + +case @scope.kind of + 0 = @universescope +| 1 = @packagescope +| 2 = @localscope; + +case @type.kind of + 0 = @invalidtype +| 1 = @boolexprtype +| 2 = @inttype +| 3 = @int8type +| 4 = @int16type +| 5 = @int32type +| 6 = @int64type +| 7 = @uinttype +| 8 = @uint8type +| 9 = @uint16type +| 10 = @uint32type +| 11 = @uint64type +| 12 = @uintptrtype +| 13 = @float32type +| 14 = @float64type +| 15 = @complex64type +| 16 = @complex128type +| 17 = @stringexprtype +| 18 = @unsafepointertype +| 19 = @boolliteraltype +| 20 = @intliteraltype +| 21 = @runeliteraltype +| 22 = @floatliteraltype +| 23 = @complexliteraltype +| 24 = @stringliteraltype +| 25 = @nilliteraltype +| 26 = @typeparamtype +| 27 = @arraytype +| 28 = @slicetype +| 29 = @structtype +| 30 = @pointertype +| 31 = @interfacetype +| 32 = @tupletype +| 33 = @signaturetype +| 34 = @maptype +| 35 = @sendchantype +| 36 = @recvchantype +| 37 = @sendrcvchantype +| 38 = @namedtype +| 39 = @typesetliteraltype; + +@basictype = @booltype | @numerictype | @stringtype | @literaltype | @invalidtype | @unsafepointertype; + +@booltype = @boolexprtype | @boolliteraltype; + +@numerictype = @integertype | @floattype | @complextype; + +@integertype = @signedintegertype | @unsignedintegertype; + +@signedintegertype = @inttype | @int8type | @int16type | @int32type | @int64type | @intliteraltype | @runeliteraltype; + +@unsignedintegertype = @uinttype | @uint8type | @uint16type | @uint32type | @uint64type | @uintptrtype; + +@floattype = @float32type | @float64type | @floatliteraltype; + +@complextype = @complex64type | @complex128type | @complexliteraltype; + +@stringtype = @stringexprtype | @stringliteraltype; + +@literaltype = @boolliteraltype | @intliteraltype | @runeliteraltype | @floatliteraltype | @complexliteraltype + | @stringliteraltype | @nilliteraltype; + +@compositetype = @typeparamtype | @containertype | @structtype | @pointertype | @interfacetype | @tupletype + | @signaturetype | @namedtype | @typesetliteraltype; + +@containertype = @arraytype | @slicetype | @maptype | @chantype; + +@chantype = @sendchantype | @recvchantype | @sendrcvchantype; + +case @modexpr.kind of + 0 = @modcommentblock +| 1 = @modline +| 2 = @modlineblock +| 3 = @modlparen +| 4 = @modrparen; + +case @error.kind of + 0 = @unknownerror +| 1 = @listerror +| 2 = @parseerror +| 3 = @typeerror; + diff --git a/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/old.dbscheme b/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/old.dbscheme new file mode 100644 index 000000000000..4bd57e093275 --- /dev/null +++ b/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/old.dbscheme @@ -0,0 +1,552 @@ +/** Auto-generated dbscheme; do not edit. Run `make gen` in directory `go/` to regenerate. */ + + +/** Duplicate code **/ + +duplicateCode( + unique int id : @duplication, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +similarCode( + unique int id : @similarity, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +@duplication_or_similarity = @duplication | @similarity; + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref); + +/** External data **/ + +externalData( + int id : @externalDataElement, + varchar(900) path : string ref, + int column: int ref, + varchar(900) value : string ref +); + +snapshotDate(unique date snapshotDate : date ref); + +sourceLocationPrefix(varchar(900) prefix : string ref); + + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +compilations(unique int id: @compilation, string cwd: string ref); + +#keyset[id, num] +compilation_args(int id: @compilation ref, int num: int ref, string arg: string ref); + +#keyset[id, num, kind] +compilation_time(int id: @compilation ref, int num: int ref, int kind: int ref, float secs: float ref); + +diagnostic_for(unique int diagnostic: @diagnostic ref, int compilation: @compilation ref, int file_number: int ref, int file_number_diagnostic_number: int ref); + +compilation_finished(unique int id: @compilation ref, float cpu_seconds: float ref, float elapsed_seconds: float ref); + +#keyset[id, num] +compilation_compiling_files(int id: @compilation ref, int num: int ref, int file: @file ref); + +diagnostics(unique int id: @diagnostic, int severity: int ref, string error_tag: string ref, string error_message: string ref, + string full_error_message: string ref, int location: @location ref); + +locations_default(unique int id: @location_default, int file: @file ref, int beginLine: int ref, int beginColumn: int ref, + int endLine: int ref, int endColumn: int ref); + +numlines(int element_id: @sourceline ref, int num_lines: int ref, int num_code: int ref, int num_comment: int ref); + +files(unique int id: @file, string name: string ref); + +folders(unique int id: @folder, string name: string ref); + +containerparent(int parent: @container ref, unique int child: @container ref); + +has_location(unique int locatable: @locatable ref, int location: @location ref); + +#keyset[parent, idx] +comment_groups(unique int id: @comment_group, int parent: @file ref, int idx: int ref); + +comments(unique int id: @comment, int kind: int ref, int parent: @comment_group ref, int idx: int ref, string text: string ref); + +doc_comments(unique int node: @documentable ref, int comment: @comment_group ref); + +#keyset[parent, idx] +exprs(unique int id: @expr, int kind: int ref, int parent: @exprparent ref, int idx: int ref); + +literals(unique int expr: @expr ref, string value: string ref, string raw: string ref); + +constvalues(unique int expr: @expr ref, string value: string ref, string exact: string ref); + +fields(unique int id: @field, int parent: @fieldparent ref, int idx: int ref); + +typeparamdecls(unique int id: @typeparamdecl, int parent: @typeparamdeclparent ref, int idx: int ref); + +#keyset[parent, idx] +stmts(unique int id: @stmt, int kind: int ref, int parent: @stmtparent ref, int idx: int ref); + +#keyset[parent, idx] +decls(unique int id: @decl, int kind: int ref, int parent: @declparent ref, int idx: int ref); + +#keyset[parent, idx] +specs(unique int id: @spec, int kind: int ref, int parent: @gendecl ref, int idx: int ref); + +scopes(unique int id: @scope, int kind: int ref); + +scopenesting(unique int inner: @scope ref, int outer: @scope ref); + +scopenodes(unique int node: @scopenode ref, int scope: @localscope ref); + +objects(unique int id: @object, int kind: int ref, string name: string ref); + +objectscopes(unique int object: @object ref, int scope: @scope ref); + +objecttypes(unique int object: @object ref, int tp: @type ref); + +methodreceivers(unique int method: @object ref, int receiver: @object ref); + +fieldstructs(unique int field: @object ref, int struct: @structtype ref); + +methodhosts(int method: @object ref, int host: @namedtype ref); + +defs(int ident: @ident ref, int object: @object ref); + +uses(int ident: @ident ref, int object: @object ref); + +types(unique int id: @type, int kind: int ref); + +type_of(unique int expr: @expr ref, int tp: @type ref); + +typename(unique int tp: @type ref, string name: string ref); + +key_type(unique int map: @maptype ref, int tp: @type ref); + +element_type(unique int container: @containertype ref, int tp: @type ref); + +base_type(unique int ptr: @pointertype ref, int tp: @type ref); + +underlying_type(unique int named: @namedtype ref, int tp: @type ref); + +#keyset[parent, index] +component_types(int parent: @compositetype ref, int index: int ref, string name: string ref, int tp: @type ref); + +#keyset[parent, index] +struct_tags(int parent: @structtype ref, int index: int ref, string tag: string ref); + +#keyset[interface, index] +interface_private_method_ids(int interface: @interfacetype ref, int index: int ref, string id: string ref); + +array_length(unique int tp: @arraytype ref, string len: string ref); + +type_objects(unique int tp: @type ref, int object: @object ref); + +packages(unique int id: @package, string name: string ref, string path: string ref, int scope: @packagescope ref); + +#keyset[parent, idx] +modexprs(unique int id: @modexpr, int kind: int ref, int parent: @modexprparent ref, int idx: int ref); + +#keyset[parent, idx] +modtokens(string token: string ref, int parent: @modexpr ref, int idx: int ref); + +#keyset[package, idx] +errors(unique int id: @error, int kind: int ref, string msg: string ref, string rawpos: string ref, + string file: string ref, int line: int ref, int col: int ref, int package: @package ref, int idx: int ref); + +has_ellipsis(int id: @callorconversionexpr ref); + +variadic(int id: @signaturetype ref); + +#keyset[parent, idx] +typeparam(unique int tp: @typeparamtype ref, string name: string ref, int bound: @compositetype ref, + int parent: @typeparamparentobject ref, int idx: int ref); + +@container = @file | @folder; + +@locatable = @xmllocatable | @node | @localscope; + +@node = @documentable | @exprparent | @modexprparent | @fieldparent | @stmtparent | @declparent | @typeparamdeclparent + | @scopenode | @comment_group | @comment; + +@documentable = @file | @field | @typeparamdecl | @spec | @gendecl | @funcdecl | @modexpr; + +@exprparent = @funcdef | @file | @expr | @field | @stmt | @decl | @typeparamdecl | @spec; + +@modexprparent = @file | @modexpr; + +@fieldparent = @decl | @structtypeexpr | @functypeexpr | @interfacetypeexpr; + +@stmtparent = @funcdef | @stmt | @decl; + +@declparent = @file | @declstmt; + +@typeparamdeclparent = @funcdecl | @typespec; + +@funcdef = @funclit | @funcdecl; + +@scopenode = @file | @functypeexpr | @blockstmt | @ifstmt | @caseclause | @switchstmt | @commclause | @loopstmt; + +@location = @location_default; + +@sourceline = @locatable; + +case @comment.kind of + 0 = @slashslashcomment +| 1 = @slashstarcomment; + +case @expr.kind of + 0 = @badexpr +| 1 = @ident +| 2 = @ellipsis +| 3 = @intlit +| 4 = @floatlit +| 5 = @imaglit +| 6 = @charlit +| 7 = @stringlit +| 8 = @funclit +| 9 = @compositelit +| 10 = @parenexpr +| 11 = @selectorexpr +| 12 = @indexexpr +| 13 = @genericfunctioninstantiationexpr +| 14 = @generictypeinstantiationexpr +| 15 = @sliceexpr +| 16 = @typeassertexpr +| 17 = @callorconversionexpr +| 18 = @starexpr +| 19 = @keyvalueexpr +| 20 = @arraytypeexpr +| 21 = @structtypeexpr +| 22 = @functypeexpr +| 23 = @interfacetypeexpr +| 24 = @maptypeexpr +| 25 = @typesetliteralexpr +| 26 = @plusexpr +| 27 = @minusexpr +| 28 = @notexpr +| 29 = @complementexpr +| 30 = @derefexpr +| 31 = @addressexpr +| 32 = @arrowexpr +| 33 = @lorexpr +| 34 = @landexpr +| 35 = @eqlexpr +| 36 = @neqexpr +| 37 = @lssexpr +| 38 = @leqexpr +| 39 = @gtrexpr +| 40 = @geqexpr +| 41 = @addexpr +| 42 = @subexpr +| 43 = @orexpr +| 44 = @xorexpr +| 45 = @mulexpr +| 46 = @quoexpr +| 47 = @remexpr +| 48 = @shlexpr +| 49 = @shrexpr +| 50 = @andexpr +| 51 = @andnotexpr +| 52 = @sendchantypeexpr +| 53 = @recvchantypeexpr +| 54 = @sendrcvchantypeexpr; + +@basiclit = @intlit | @floatlit | @imaglit | @charlit | @stringlit; + +@operatorexpr = @logicalexpr | @arithmeticexpr | @bitwiseexpr | @unaryexpr | @binaryexpr; + +@logicalexpr = @logicalunaryexpr | @logicalbinaryexpr; + +@arithmeticexpr = @arithmeticunaryexpr | @arithmeticbinaryexpr; + +@bitwiseexpr = @bitwiseunaryexpr | @bitwisebinaryexpr; + +@unaryexpr = @logicalunaryexpr | @bitwiseunaryexpr | @arithmeticunaryexpr | @derefexpr | @addressexpr | @arrowexpr; + +@logicalunaryexpr = @notexpr; + +@bitwiseunaryexpr = @complementexpr; + +@arithmeticunaryexpr = @plusexpr | @minusexpr; + +@binaryexpr = @logicalbinaryexpr | @bitwisebinaryexpr | @arithmeticbinaryexpr | @comparison; + +@logicalbinaryexpr = @lorexpr | @landexpr; + +@bitwisebinaryexpr = @shiftexpr | @orexpr | @xorexpr | @andexpr | @andnotexpr; + +@arithmeticbinaryexpr = @addexpr | @subexpr | @mulexpr | @quoexpr | @remexpr; + +@shiftexpr = @shlexpr | @shrexpr; + +@comparison = @equalitytest | @relationalcomparison; + +@equalitytest = @eqlexpr | @neqexpr; + +@relationalcomparison = @lssexpr | @leqexpr | @gtrexpr | @geqexpr; + +@chantypeexpr = @sendchantypeexpr | @recvchantypeexpr | @sendrcvchantypeexpr; + +case @stmt.kind of + 0 = @badstmt +| 1 = @declstmt +| 2 = @emptystmt +| 3 = @labeledstmt +| 4 = @exprstmt +| 5 = @sendstmt +| 6 = @incstmt +| 7 = @decstmt +| 8 = @gostmt +| 9 = @deferstmt +| 10 = @returnstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @gotostmt +| 14 = @fallthroughstmt +| 15 = @blockstmt +| 16 = @ifstmt +| 17 = @caseclause +| 18 = @exprswitchstmt +| 19 = @typeswitchstmt +| 20 = @commclause +| 21 = @selectstmt +| 22 = @forstmt +| 23 = @rangestmt +| 24 = @assignstmt +| 25 = @definestmt +| 26 = @addassignstmt +| 27 = @subassignstmt +| 28 = @mulassignstmt +| 29 = @quoassignstmt +| 30 = @remassignstmt +| 31 = @andassignstmt +| 32 = @orassignstmt +| 33 = @xorassignstmt +| 34 = @shlassignstmt +| 35 = @shrassignstmt +| 36 = @andnotassignstmt; + +@incdecstmt = @incstmt | @decstmt; + +@assignment = @simpleassignstmt | @compoundassignstmt; + +@simpleassignstmt = @assignstmt | @definestmt; + +@compoundassignstmt = @addassignstmt | @subassignstmt | @mulassignstmt | @quoassignstmt | @remassignstmt + | @andassignstmt | @orassignstmt | @xorassignstmt | @shlassignstmt | @shrassignstmt | @andnotassignstmt; + +@branchstmt = @breakstmt | @continuestmt | @gotostmt | @fallthroughstmt; + +@switchstmt = @exprswitchstmt | @typeswitchstmt; + +@loopstmt = @forstmt | @rangestmt; + +case @decl.kind of + 0 = @baddecl +| 1 = @importdecl +| 2 = @constdecl +| 3 = @typedecl +| 4 = @vardecl +| 5 = @funcdecl; + +@gendecl = @importdecl | @constdecl | @typedecl | @vardecl; + +case @spec.kind of + 0 = @importspec +| 1 = @valuespec +| 2 = @typedefspec +| 3 = @aliasspec; + +@typespec = @typedefspec | @aliasspec; + +case @object.kind of + 0 = @pkgobject +| 1 = @decltypeobject +| 2 = @builtintypeobject +| 3 = @declconstobject +| 4 = @builtinconstobject +| 5 = @declvarobject +| 6 = @declfunctionobject +| 7 = @builtinfunctionobject +| 8 = @labelobject; + +@typeparamparentobject = @decltypeobject | @declfunctionobject; + +@declobject = @decltypeobject | @declconstobject | @declvarobject | @declfunctionobject; + +@builtinobject = @builtintypeobject | @builtinconstobject | @builtinfunctionobject; + +@typeobject = @decltypeobject | @builtintypeobject; + +@valueobject = @constobject | @varobject | @functionobject; + +@constobject = @declconstobject | @builtinconstobject; + +@varobject = @declvarobject; + +@functionobject = @declfunctionobject | @builtinfunctionobject; + +case @scope.kind of + 0 = @universescope +| 1 = @packagescope +| 2 = @localscope; + +case @type.kind of + 0 = @invalidtype +| 1 = @boolexprtype +| 2 = @inttype +| 3 = @int8type +| 4 = @int16type +| 5 = @int32type +| 6 = @int64type +| 7 = @uinttype +| 8 = @uint8type +| 9 = @uint16type +| 10 = @uint32type +| 11 = @uint64type +| 12 = @uintptrtype +| 13 = @float32type +| 14 = @float64type +| 15 = @complex64type +| 16 = @complex128type +| 17 = @stringexprtype +| 18 = @unsafepointertype +| 19 = @boolliteraltype +| 20 = @intliteraltype +| 21 = @runeliteraltype +| 22 = @floatliteraltype +| 23 = @complexliteraltype +| 24 = @stringliteraltype +| 25 = @nilliteraltype +| 26 = @typeparamtype +| 27 = @arraytype +| 28 = @slicetype +| 29 = @structtype +| 30 = @pointertype +| 31 = @interfacetype +| 32 = @tupletype +| 33 = @signaturetype +| 34 = @maptype +| 35 = @sendchantype +| 36 = @recvchantype +| 37 = @sendrcvchantype +| 38 = @namedtype +| 39 = @typesetliteraltype; + +@basictype = @booltype | @numerictype | @stringtype | @literaltype | @invalidtype | @unsafepointertype; + +@booltype = @boolexprtype | @boolliteraltype; + +@numerictype = @integertype | @floattype | @complextype; + +@integertype = @signedintegertype | @unsignedintegertype; + +@signedintegertype = @inttype | @int8type | @int16type | @int32type | @int64type | @intliteraltype | @runeliteraltype; + +@unsignedintegertype = @uinttype | @uint8type | @uint16type | @uint32type | @uint64type | @uintptrtype; + +@floattype = @float32type | @float64type | @floatliteraltype; + +@complextype = @complex64type | @complex128type | @complexliteraltype; + +@stringtype = @stringexprtype | @stringliteraltype; + +@literaltype = @boolliteraltype | @intliteraltype | @runeliteraltype | @floatliteraltype | @complexliteraltype + | @stringliteraltype | @nilliteraltype; + +@compositetype = @typeparamtype | @containertype | @structtype | @pointertype | @interfacetype | @tupletype + | @signaturetype | @namedtype | @typesetliteraltype; + +@containertype = @arraytype | @slicetype | @maptype | @chantype; + +@chantype = @sendchantype | @recvchantype | @sendrcvchantype; + +case @modexpr.kind of + 0 = @modcommentblock +| 1 = @modline +| 2 = @modlineblock +| 3 = @modlparen +| 4 = @modrparen; + +case @error.kind of + 0 = @unknownerror +| 1 = @listerror +| 2 = @parseerror +| 3 = @typeerror; + diff --git a/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/upgrade.properties b/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/upgrade.properties new file mode 100644 index 000000000000..0cda1e3644f8 --- /dev/null +++ b/go/downgrades/4bd57e093275e5e892dfb16b55ed4bd76ea662be/upgrade.properties @@ -0,0 +1,5 @@ +description: Remove component-tags and interface-method-id tables +compatibility: full + +struct_tags.rel: delete +interface_private_method_ids.rel: delete diff --git a/go/extractor/dbscheme/dbscheme.go b/go/extractor/dbscheme/dbscheme.go index 923fda859dba..550c7920c711 100644 --- a/go/extractor/dbscheme/dbscheme.go +++ b/go/extractor/dbscheme/dbscheme.go @@ -410,7 +410,7 @@ func AddDefaultSnippet(snippet string) bool { // PrintDbScheme prints the schema of this database to the writer `w` func PrintDbScheme(w io.Writer) { - fmt.Fprintf(w, "/** Auto-generated dbscheme; do not edit. */\n\n") + fmt.Fprintf(w, "/** Auto-generated dbscheme; do not edit. Run `make gen` in directory `go/` to regenerate. */\n\n") for _, snippet := range defaultSnippets { fmt.Fprintf(w, "%s\n", snippet) } diff --git a/go/extractor/dbscheme/tables.go b/go/extractor/dbscheme/tables.go index e987cb402ae4..aa44c6248424 100644 --- a/go/extractor/dbscheme/tables.go +++ b/go/extractor/dbscheme/tables.go @@ -1150,6 +1150,20 @@ var ComponentTypesTable = NewTable("component_types", EntityColumn(TypeType, "tp"), ).KeySet("parent", "index") +// StructTagsTable is the table associating struct types with their component types' tags +var StructTagsTable = NewTable("struct_tags", + EntityColumn(StructType, "parent"), + IntColumn("index"), + StringColumn("tag"), +).KeySet("parent", "index") + +// InterfacePrivateMethodIdsTable is the table associating interface types with the indices and ids of their private methods. +var InterfacePrivateMethodIdsTable = NewTable("interface_private_method_ids", + EntityColumn(InterfaceType, "interface"), + IntColumn("index"), + StringColumn("id"), +).KeySet("interface", "index") + // ArrayLengthTable is the table associating array types with their length (represented as a string // since Go array lengths are 64-bit and hence do not always fit into a QL integer) var ArrayLengthTable = NewTable("array_length", diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index b1d476d10948..c157f7c8f672 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -1624,6 +1624,9 @@ func extractType(tw *trap.Writer, tp types.Type) trap.Label { name = "" } extractComponentType(tw, lbl, i, name, field.Type()) + if tp.Tag(i) != "" { + dbscheme.StructTagsTable.Emit(tw, lbl, i, tp.Tag(i)) + } } case *types.Pointer: kind = dbscheme.PointerType.Index() @@ -1641,6 +1644,10 @@ func extractType(tw *trap.Writer, tp types.Type) trap.Label { extractMethod(tw, meth) extractComponentType(tw, lbl, i, meth.Name(), meth.Type()) + + if !meth.Exported() { + dbscheme.InterfacePrivateMethodIdsTable.Emit(tw, lbl, i, meth.Id()) + } } for i := 0; i < tp.NumEmbeddeds(); i++ { component := tp.EmbeddedType(i) diff --git a/go/ql/lib/change-notes/2024-09-03-tags-and-interface-ids.md b/go/ql/lib/change-notes/2024-09-03-tags-and-interface-ids.md new file mode 100644 index 000000000000..749ae4cde998 --- /dev/null +++ b/go/ql/lib/change-notes/2024-09-03-tags-and-interface-ids.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Added member predicates `StructTag.hasOwnFieldWithTag` and `Field.getTag`, which enable CodeQL queries to examine struct field tags. +* Added member predicate `InterfaceType.hasPrivateMethodWithQualifiedName`, which enables CodeQL queries to distinguish interfaces with matching non-exported method names that are declared in different packages, and are therefore incompatible. diff --git a/go/ql/lib/go.dbscheme b/go/ql/lib/go.dbscheme index a58b81b1b4c4..4bd57e093275 100644 --- a/go/ql/lib/go.dbscheme +++ b/go/ql/lib/go.dbscheme @@ -1,4 +1,4 @@ -/** Auto-generated dbscheme; do not edit. */ +/** Auto-generated dbscheme; do not edit. Run `make gen` in directory `go/` to regenerate. */ /** Duplicate code **/ @@ -207,6 +207,12 @@ underlying_type(unique int named: @namedtype ref, int tp: @type ref); #keyset[parent, index] component_types(int parent: @compositetype ref, int index: int ref, string name: string ref, int tp: @type ref); +#keyset[parent, index] +struct_tags(int parent: @structtype ref, int index: int ref, string tag: string ref); + +#keyset[interface, index] +interface_private_method_ids(int interface: @interfacetype ref, int index: int ref, string id: string ref); + array_length(unique int tp: @arraytype ref, string len: string ref); type_objects(unique int tp: @type ref, int object: @object ref); diff --git a/go/ql/lib/go.dbscheme.stats b/go/ql/lib/go.dbscheme.stats index b18e8556fb24..a602a143ee0c 100644 --- a/go/ql/lib/go.dbscheme.stats +++ b/go/ql/lib/go.dbscheme.stats @@ -1,11 +1,15 @@ - @similarity + @duplication 0 - @duplication + @externalDataElement + 0 + + + @similarity 0 @@ -14,15 +18,11 @@ @xmlelement - 504 + 8655540 @xmlattribute - 408 - - - @externalDataElement - 0 + 3762921 @xmlnamespace @@ -30,667 +30,695 @@ @xmlcomment - 30 + 131455 @xmlcharacters - 869 + 13383839 @compilation - 1 + 31407 @diagnostic - 0 + 233782 @file - 529 + 146783 @folder - 210 + 98591 @comment_group - 12083 + 2493839 @slashslashcomment - 24878 + 2514613 @slashstarcomment - 846 + 77689 + + + @location_default + 37058201 @ident - 237316 + 5500549 @ellipsis - 141 + 42416 @intlit - 7683 - - - @floatlit - 27 + 8029312 @charlit - 838 + 44853 @stringlit - 24892 + 936836 @funclit - 678 + 145208 @compositelit - 2704 + 638762 @parenexpr - 343 + 44180 @selectorexpr - 54353 + 1563876 @indexexpr - 4581 + 1269900 @sliceexpr - 836 + 26235 @typeassertexpr - 2127 + 86701 @callorconversionexpr - 32041 + 1123396 @starexpr - 10360 + 401599 @keyvalueexpr - 5616 + 2321152 @arraytypeexpr - 3465 + 172175 @structtypeexpr - 1207 + 126802 @functypeexpr - 6015 + 302047 @interfacetypeexpr - 509 + 154636 @maptypeexpr - 1013 + 71689 @minusexpr - 270 + 183167 @notexpr - 1190 - - - @complementexpr - 21 + 36971 @addressexpr - 1739 + 112784 @arrowexpr - 92 + 27351 @lorexpr - 612 + 27296 @landexpr - 1234 + 99629 @eqlexpr - 3244 + 91950 @neqexpr - 4103 - - - @lssexpr - 785 - - - @leqexpr - 248 + 326490 @gtrexpr - 619 + 38816 @geqexpr - 270 + 21923 @addexpr - 1272 + 194589 @subexpr - 557 + 222492 - @orexpr - 146 + @mulexpr + 32053 - @xorexpr - 14 + @sendchantypeexpr + 22312 - @mulexpr - 207 + @recvchantypeexpr + 9117 - @quoexpr - 53 + @sendrcvchantypeexpr + 25432 - @remexpr - 24 + @badexpr + 2 - @shlexpr - 164 + @floatlit + 393088 - @shrexpr - 57 + @imaglit + 1233 - @andexpr - 235 + @genericfunctioninstantiationexpr + 9823 - @andnotexpr - 19 + @generictypeinstantiationexpr + 4188 - @sendchantypeexpr - 7 + @typesetliteralexpr + 1171 - @recvchantypeexpr - 9 + @plusexpr + 370 - @sendrcvchantypeexpr - 101 + @complementexpr + 3979 - @badexpr + @derefexpr 0 - @imaglit - 0 + @lssexpr + 32125 - @plusexpr - 0 + @leqexpr + 9262 - @derefexpr - 0 + @orexpr + 81746 - @field - 19974 + @xorexpr + 1753 - @location_default - 539178 + @quoexpr + 61619 - @declstmt - 1454 + @remexpr + 2999 - @labeledstmt - 49 + @shlexpr + 82494 + + + @shrexpr + 7813 + + + @andexpr + 11860 + + + @andnotexpr + 396 + + + @field + 995459 + + + @typeparamdecl + 9798 + + + @declstmt + 74013 @exprstmt - 7605 + 460278 @sendstmt - 69 + 16794 @incstmt - 614 + 15889 @decstmt - 71 + 9601 @gostmt - 72 + 20539 @deferstmt - 358 + 98332 @returnstmt - 9225 + 355294 @breakstmt - 301 + 14232 @continuestmt - 606 - - - @gotostmt - 8 - - - @fallthroughstmt - 7 + 45187 @blockstmt - 19358 + 539596 @ifstmt - 9728 + 313551 @caseclause - 3476 + 79016 @exprswitchstmt - 378 + 17092 @typeswitchstmt - 400 + 9269 @commclause - 72 + 25912 @selectstmt - 35 + 11996 @forstmt - 654 + 25752 @rangestmt - 2135 + 64694 @assignstmt - 7478 + 641512 @definestmt - 9514 + 433774 @addassignstmt - 223 + 21683 - @subassignstmt - 18 + @badstmt + 0 - @mulassignstmt - 5 + @emptystmt + 181 - @quoassignstmt - 3 + @labeledstmt + 4273 - @orassignstmt - 63 + @gotostmt + 4431 - @xorassignstmt - 3 + @fallthroughstmt + 11233 - @shlassignstmt - 2 + @subassignstmt + 6675 - @shrassignstmt - 3 + @mulassignstmt + 470 - @andnotassignstmt - 3 + @quoassignstmt + 556 - @badstmt - 0 + @remassignstmt + 171 - @emptystmt - 0 + @andassignstmt + 279 - @remassignstmt - 0 + @orassignstmt + 9913 - @andassignstmt - 0 + @xorassignstmt + 2562 + + + @shlassignstmt + 367 + + + @shrassignstmt + 429 + + + @andnotassignstmt + 279 @importdecl - 479 + 83355 @constdecl - 280 + 54489 @typedecl - 1349 + 100497 @vardecl - 1769 + 118650 @funcdecl - 4813 + 283367 @baddecl - 0 + 214 @importspec - 3468 + 247378 @valuespec - 3056 + 152556 @typedefspec - 1349 + 101666 @aliasspec - 16 + 17497 @universescope - 1 + 5401 @packagescope - 346 + 924779 @localscope - 36428 + 919952 @pkgobject - 3468 + 247378 @decltypeobject - 3602 + 13124885 @builtintypeobject - 20 + 118831 @declconstobject - 8857 + 80430386 @builtinconstobject - 4 + 21605 @declvarobject - 51098 + 118985930 @declfunctionobject - 17793 + 93191570 @builtinfunctionobject - 18 + 140437 @labelobject - 49 + 4273 @invalidtype - 1 + 5401 @boolexprtype - 1 + 5401 @inttype - 1 + 5401 @int8type - 1 + 5401 @int16type - 1 + 5401 @int32type - 1 + 5401 @int64type - 1 + 5401 @uinttype - 1 + 5401 @uint8type - 1 + 5401 @uint16type - 1 + 5401 @uint32type - 1 + 5401 @uint64type - 1 + 5401 @uintptrtype - 1 + 5401 @float32type - 1 + 5401 @float64type - 1 + 5401 @complex64type - 1 + 4107 @complex128type - 1 + 5401 @stringexprtype - 1 + 5401 @unsafepointertype - 1 + 5401 @boolliteraltype - 1 + 5401 @intliteraltype - 1 + 5401 @runeliteraltype - 1 + 5401 @floatliteraltype - 1 + 5401 @stringliteraltype - 1 + 5401 @nilliteraltype - 1 + 5401 + + + @typeparamtype + 331358 @arraytype - 293 + 1528173 @slicetype - 637 + 2313692 @structtype - 2409 + 8070007 @pointertype - 1903 + 8158995 @interfacetype - 247 + 1636684 @tupletype - 559 + 69835 @signaturetype - 8010 + 28950823 @maptype - 430 + 866786 @sendchantype - 13 + 32408 @recvchantype - 10 + 48612 @sendrcvchantype - 29 + 101202 @namedtype - 3567 + 12852686 + + + @typesetliteraltype + 59325 + + + @typealias + 660784 @complexliteraltype - 0 + 88 @package - 346 + 924779 @modline - 6 + 191935 @modlineblock - 1 + 22683 @modlparen - 1 + 22683 @modrparen - 1 + 22683 @modcommentblock - 0 + 431 @unknownerror @@ -698,15 +726,15 @@ @listerror - 0 + 22275 @parseerror - 0 + 3428 @typeerror - 0 + 219425 @@ -738,7 +766,7 @@ 1 2 - 1 + 403 @@ -754,7 +782,7 @@ 1 2 - 1 + 403 @@ -830,7 +858,7 @@ 1 2 - 1 + 403 @@ -846,7 +874,7 @@ 1 2 - 1 + 403 @@ -1383,11 +1411,11 @@ sourceLocationPrefix - 1 + 5401 prefix - 1 + 5401 @@ -1416,7 +1444,7 @@ 1 2 - 1 + 403 @@ -1470,7 +1498,7 @@ 1 2 - 1 + 403 @@ -1486,7 +1514,7 @@ 1 2 - 1 + 403 @@ -1502,7 +1530,7 @@ 1 2 - 1 + 403 @@ -1518,7 +1546,7 @@ 1 2 - 1 + 403 @@ -1688,27 +1716,27 @@ xmlElements - 504 + 8655540 id - 504 + 8655540 name - 38 + 160211 parentid - 199 + 2961862 idx - 86 + 1302233 fileid - 14 + 90375 @@ -1722,7 +1750,7 @@ 1 2 - 504 + 8655540 @@ -1738,7 +1766,7 @@ 1 2 - 504 + 8655540 @@ -1754,7 +1782,7 @@ 1 2 - 504 + 8655540 @@ -1770,7 +1798,7 @@ 1 2 - 504 + 8655540 @@ -1786,52 +1814,72 @@ 1 2 - 11 + 24647 2 3 - 3 + 8215 3 4 - 4 + 8215 4 + 5 + 12323 + + + 5 6 - 3 + 4107 - 7 - 12 - 3 + 8 + 9 + 12323 - 12 + 13 14 - 2 + 8215 - 14 - 16 - 3 + 18 + 22 + 12323 - 16 - 22 - 3 + 22 + 30 + 12323 - 27 + 30 40 - 3 + 12323 - 55 - 101 - 3 + 49 + 52 + 12323 + + + 52 + 58 + 8215 + + + 135 + 200 + 12323 + + + 233 + 570 + 12323 @@ -1847,47 +1895,57 @@ 1 2 - 15 + 49295 2 3 - 4 - - - 3 - 4 - 4 + 8215 4 5 - 3 + 20539 5 - 6 - 1 + 11 + 8215 - 6 - 7 - 3 + 11 + 12 + 8215 - 7 - 18 - 3 + 13 + 19 + 12323 - 18 + 19 22 - 3 + 12323 - 29 - 76 - 2 + 22 + 30 + 12323 + + + 33 + 53 + 12323 + + + 72 + 132 + 12323 + + + 302 + 303 + 4107 @@ -1903,52 +1961,52 @@ 1 2 - 12 + 41079 2 3 - 4 + 28755 3 4 - 5 + 12323 4 5 - 1 + 12323 5 6 - 3 + 12323 - 6 - 9 - 3 + 7 + 10 + 12323 - 10 - 11 - 2 + 11 + 14 + 12323 - 13 - 15 - 3 + 14 + 16 + 12323 - 15 - 17 - 3 + 33 + 50 + 12323 - 17 - 41 - 2 + 212 + 213 + 4107 @@ -1964,37 +2022,37 @@ 1 2 - 18 + 86267 2 3 - 7 + 12323 - 3 - 4 - 3 + 10 + 11 + 24647 - 4 - 5 - 1 + 13 + 19 + 8215 - 5 - 6 - 4 + 19 + 21 + 12323 - 7 - 11 - 3 + 21 + 22 + 8215 - 11 - 14 - 2 + 22 + 23 + 8215 @@ -2010,27 +2068,32 @@ 1 2 - 116 + 1429581 2 3 - 37 + 788734 3 4 - 22 + 172535 4 - 8 - 15 + 5 + 168427 - 8 - 61 - 9 + 5 + 7 + 267019 + + + 7 + 311 + 135563 @@ -2046,17 +2109,17 @@ 1 2 - 160 + 2185452 2 3 - 23 + 636738 3 - 8 - 16 + 10 + 139671 @@ -2072,27 +2135,32 @@ 1 2 - 116 + 1429581 2 3 - 37 + 788734 3 4 - 22 + 172535 4 - 8 - 15 + 5 + 168427 - 8 - 61 - 9 + 5 + 7 + 267019 + + + 7 + 311 + 135563 @@ -2108,7 +2176,7 @@ 1 2 - 199 + 2961862 @@ -2124,32 +2192,17 @@ 1 2 - 54 + 1125589 2 - 3 - 4 - - - 3 - 4 - 11 - - - 4 6 - 6 + 110915 6 - 21 - 7 - - - 40 - 141 - 4 + 404 + 65727 @@ -2165,32 +2218,17 @@ 1 2 - 54 + 1125589 2 3 - 5 + 106807 3 - 4 - 11 - - - 4 - 5 - 6 - - - 5 - 12 - 7 - - - 14 26 - 3 + 69835 @@ -2206,32 +2244,17 @@ 1 2 - 54 + 1125589 2 - 3 - 4 - - - 3 - 4 - 11 - - - 4 6 - 6 + 110915 6 - 21 - 7 - - - 40 - 141 - 4 + 404 + 65727 @@ -2247,32 +2270,12 @@ 1 2 - 54 + 1236505 2 - 3 - 4 - - - 3 - 4 - 11 - - - 4 - 5 - 8 - - - 5 - 13 - 7 - - - 13 - 15 - 2 + 23 + 65727 @@ -2286,64 +2289,49 @@ 12 - 2 - 3 - 1 - - - 7 - 8 - 1 + 6 + 7 + 4107 8 9 - 2 - - - 10 - 11 - 1 - - - 16 - 17 - 1 + 8215 - 18 - 19 - 1 + 9 + 10 + 12323 - 20 - 21 - 1 + 10 + 11 + 8215 - 21 - 22 - 2 + 13 + 16 + 8215 - 58 - 59 - 1 + 19 + 39 + 8215 - 100 - 101 - 1 + 40 + 41 + 4107 - 107 - 108 - 1 + 41 + 42 + 28755 - 108 - 109 - 1 + 67 + 1560 + 8215 @@ -2356,55 +2344,35 @@ 12 - - 2 - 3 - 1 - - - 3 - 4 - 2 - - - 4 - 5 - 1 - - - 5 - 6 - 2 - 6 7 - 2 + 8215 - 8 - 9 - 2 + 7 + 8 + 12323 - 11 - 12 - 1 + 8 + 9 + 20539 - 16 - 17 - 1 + 9 + 15 + 8215 - 17 - 18 - 1 + 15 + 16 + 36971 - 19 - 20 - 1 + 31 + 32 + 4107 @@ -2418,54 +2386,29 @@ 12 - 2 - 3 - 2 + 3 + 4 + 4107 4 5 - 1 - - - 6 - 7 - 2 - - - 7 - 8 - 3 - - - 9 - 10 - 1 - - - 10 - 11 - 1 - - - 20 - 21 - 1 + 32863 - 23 - 24 - 1 + 5 + 6 + 8215 - 47 - 48 - 1 + 13 + 14 + 36971 - 49 - 50 - 1 + 38 + 522 + 8215 @@ -2479,59 +2422,39 @@ 12 - 1 - 2 - 1 - - - 3 - 4 - 2 + 2 + 3 + 4107 - 4 - 5 - 1 + 5 + 6 + 24647 - 7 + 6 8 - 3 + 8215 - 8 - 9 - 1 + 11 + 13 + 8215 13 14 - 1 + 12323 14 15 - 1 + 24647 16 - 17 - 1 - - - 30 - 31 - 1 - - - 34 - 35 - 1 - - - 67 - 68 - 1 + 314 + 8215 @@ -2541,31 +2464,31 @@ xmlAttrs - 408 + 3762921 id - 408 + 3762921 elementid - 288 + 2744139 name - 28 + 180751 value - 235 + 1713032 idx - 6 + 20539 fileid - 14 + 90375 @@ -2579,7 +2502,7 @@ 1 2 - 408 + 3762921 @@ -2595,7 +2518,7 @@ 1 2 - 408 + 3762921 @@ -2611,7 +2534,7 @@ 1 2 - 408 + 3762921 @@ -2627,7 +2550,7 @@ 1 2 - 408 + 3762921 @@ -2643,7 +2566,7 @@ 1 2 - 408 + 3762921 @@ -2659,22 +2582,17 @@ 1 2 - 195 + 1963620 2 3 - 69 + 579226 3 - 4 - 23 - - - 6 - 7 - 1 + 6 + 201291 @@ -2690,22 +2608,17 @@ 1 2 - 195 + 1963620 2 3 - 69 + 579226 3 - 4 - 23 - - - 6 - 7 - 1 + 6 + 201291 @@ -2721,22 +2634,17 @@ 1 2 - 195 + 1963620 2 3 - 70 + 579226 3 - 4 - 22 - - - 4 - 5 - 1 + 6 + 201291 @@ -2752,22 +2660,17 @@ 1 2 - 195 + 1963620 2 3 - 69 + 579226 3 - 4 - 23 - - - 6 - 7 - 1 + 6 + 201291 @@ -2783,7 +2686,7 @@ 1 2 - 288 + 2744139 @@ -2799,42 +2702,42 @@ 1 2 - 12 + 65727 2 3 - 3 + 8215 3 4 - 4 + 24647 - 5 - 15 - 2 + 4 + 6 + 16431 - 21 - 22 - 2 + 8 + 12 + 16431 - 22 - 23 - 2 + 17 + 30 + 16431 - 45 - 97 - 2 + 30 + 50 + 16431 - 132 - 133 - 1 + 50 + 250 + 16431 @@ -2850,42 +2753,42 @@ 1 2 - 12 + 65727 2 3 - 3 + 8215 3 4 - 4 + 24647 - 5 - 15 - 2 + 4 + 6 + 16431 - 21 - 22 - 2 + 8 + 12 + 16431 - 22 - 23 - 2 + 17 + 30 + 16431 - 45 - 97 - 2 + 30 + 50 + 16431 - 132 - 133 - 1 + 50 + 250 + 16431 @@ -2901,37 +2804,32 @@ 1 2 - 16 + 94483 2 3 - 2 + 20539 3 4 - 3 - - - 11 - 12 - 1 + 20539 - 15 - 16 - 2 + 4 + 5 + 12323 - 21 - 36 - 2 + 5 + 14 + 16431 - 41 - 75 - 2 + 30 + 178 + 16431 @@ -2947,17 +2845,17 @@ 1 2 - 19 + 135563 2 3 - 5 + 28755 3 - 4 - 4 + 5 + 16431 @@ -2973,32 +2871,37 @@ 1 2 - 18 + 102699 2 3 - 2 + 12323 3 - 4 - 2 + 8 + 16431 - 4 - 6 - 2 + 9 + 12 + 16431 - 10 - 11 - 3 + 14 + 17 + 12323 - 13 - 14 - 1 + 17 + 18 + 12323 + + + 19 + 20 + 8215 @@ -3014,22 +2917,27 @@ 1 2 - 171 + 1294017 2 3 - 32 + 127347 3 5 - 18 + 139671 5 - 13 - 14 + 17 + 131455 + + + 19 + 31 + 20539 @@ -3045,22 +2953,27 @@ 1 2 - 174 + 1298125 2 3 - 29 + 127347 3 5 - 18 + 135563 5 - 13 - 14 + 17 + 131455 + + + 19 + 31 + 20539 @@ -3076,12 +2989,12 @@ 1 2 - 230 + 1688384 2 4 - 5 + 24647 @@ -3097,12 +3010,12 @@ 1 2 - 224 + 1671952 2 4 - 11 + 41079 @@ -3118,17 +3031,17 @@ 1 2 - 193 + 1474769 2 - 3 - 32 + 6 + 127347 - 3 - 7 - 10 + 9 + 20 + 110915 @@ -3142,24 +3055,29 @@ 12 - 1 - 2 - 3 + 3 + 4 + 4107 - 24 - 25 - 1 + 6 + 7 + 4107 + + + 49 + 50 + 4107 - 93 - 94 - 1 + 190 + 191 + 4107 - 288 - 289 - 1 + 668 + 669 + 4107 @@ -3173,24 +3091,29 @@ 12 - 1 - 2 - 3 + 3 + 4 + 4107 - 24 - 25 - 1 + 6 + 7 + 4107 - 93 - 94 - 1 + 49 + 50 + 4107 + + + 190 + 191 + 4107 - 288 - 289 - 1 + 668 + 669 + 4107 @@ -3204,24 +3127,29 @@ 12 - 1 - 2 - 3 + 2 + 3 + 4107 - 8 - 9 - 1 + 4 + 5 + 4107 - 14 - 15 - 1 + 9 + 10 + 4107 - 16 - 17 - 1 + 21 + 22 + 4107 + + + 25 + 26 + 4107 @@ -3235,24 +3163,29 @@ 12 - 1 - 2 - 3 + 3 + 4 + 4107 - 23 - 24 - 1 + 6 + 7 + 4107 - 64 - 65 - 1 + 21 + 22 + 4107 + + + 72 + 73 + 4107 - 157 - 158 - 1 + 326 + 327 + 4107 @@ -3266,24 +3199,19 @@ 12 - 1 - 2 - 3 - - - 6 - 7 - 1 - - - 12 - 13 - 1 + 3 + 4 + 8215 14 15 - 1 + 4107 + + + 22 + 23 + 8215 @@ -3297,64 +3225,54 @@ 12 - 2 - 3 - 1 + 3 + 4 + 4107 4 5 - 1 + 8215 - 10 - 11 - 2 + 9 + 10 + 4107 11 12 - 1 + 12323 12 - 13 - 1 - - - 17 - 18 - 1 + 14 + 8215 18 - 19 - 1 - - - 19 - 20 - 1 + 38 + 8215 - 22 - 23 - 1 + 39 + 40 + 12323 - 48 - 49 - 1 + 40 + 41 + 12323 - 73 - 74 - 2 + 41 + 42 + 12323 - 89 - 90 - 1 + 91 + 333 + 8215 @@ -3368,64 +3286,49 @@ 12 - 1 - 2 - 1 + 2 + 3 + 4107 - 4 - 5 - 1 + 3 + 4 + 8215 - 8 - 9 - 2 + 5 + 7 + 8215 - 9 - 10 - 1 + 7 + 8 + 12323 - 11 + 9 12 - 1 - - - 12 - 13 - 2 - - - 16 - 17 - 1 + 8215 17 18 - 1 - - - 18 - 19 - 1 + 4107 - 42 - 43 - 1 + 25 + 26 + 12323 - 63 - 64 - 1 + 26 + 27 + 24647 - 67 - 68 - 1 + 58 + 303 + 8215 @@ -3438,40 +3341,55 @@ 12 - - 2 - 3 - 2 - 3 4 - 2 + 4107 4 5 - 4 + 8215 5 6 - 1 + 4107 - 6 - 7 - 2 + 8 + 9 + 8215 - 7 - 8 - 2 + 9 + 10 + 12323 - 23 - 24 - 1 + 10 + 11 + 4107 + + + 11 + 12 + 12323 + + + 12 + 13 + 24647 + + + 13 + 17 + 8215 + + + 20 + 21 + 4107 @@ -3484,70 +3402,50 @@ 12 - - 2 - 3 - 1 - 3 4 - 1 - - - 6 - 7 - 1 + 4107 - 8 - 9 - 2 + 4 + 5 + 8215 9 10 - 1 + 4107 - 10 - 11 - 1 - - - 13 - 14 - 1 + 11 + 12 + 20539 - 14 - 15 - 1 + 17 + 27 + 8215 - 18 - 19 - 1 + 33 + 34 + 12323 - 32 - 33 - 1 + 34 + 35 + 12323 - 54 - 55 - 1 + 35 + 36 + 12323 60 - 61 - 1 - - - 61 - 62 - 1 + 244 + 8215 @@ -3560,25 +3458,20 @@ 12 - - 1 - 2 - 2 - 2 3 - 6 + 32863 3 4 - 5 + 45187 - 6 - 7 - 1 + 5 + 6 + 12323 @@ -3812,23 +3705,23 @@ xmlComments - 30 + 131455 id - 30 + 131455 text - 18 + 98591 parentid - 20 + 115023 fileid - 10 + 49295 @@ -3842,7 +3735,7 @@ 1 2 - 30 + 131455 @@ -3858,7 +3751,7 @@ 1 2 - 30 + 131455 @@ -3874,7 +3767,7 @@ 1 2 - 30 + 131455 @@ -3890,22 +3783,17 @@ 1 2 - 13 + 86267 - 2 - 3 - 3 + 3 + 4 + 4107 4 5 - 1 - - - 7 - 8 - 1 + 8215 @@ -3921,22 +3809,17 @@ 1 2 - 14 + 86267 - 2 - 3 - 2 + 3 + 4 + 4107 4 5 - 1 - - - 7 - 8 - 1 + 8215 @@ -3952,17 +3835,17 @@ 1 2 - 15 + 86267 - 2 - 3 - 2 + 3 + 4 + 4107 - 7 - 8 - 1 + 4 + 5 + 8215 @@ -3978,22 +3861,12 @@ 1 2 - 15 + 98591 2 3 - 3 - - - 4 - 5 - 1 - - - 5 - 6 - 1 + 16431 @@ -4009,22 +3882,12 @@ 1 2 - 15 + 98591 2 3 - 3 - - - 3 - 4 - 1 - - - 5 - 6 - 1 + 16431 @@ -4040,7 +3903,7 @@ 1 2 - 20 + 115023 @@ -4056,27 +3919,22 @@ 1 2 - 6 + 28755 2 3 - 1 - - - 4 - 5 - 1 + 12323 - 8 - 9 - 1 + 3 + 4 + 4107 - 10 - 11 - 1 + 16 + 17 + 4107 @@ -4092,27 +3950,22 @@ 1 2 - 6 + 28755 2 3 - 1 - - - 4 - 5 - 1 + 12323 - 5 - 6 - 1 + 3 + 4 + 4107 - 9 - 10 - 1 + 16 + 17 + 4107 @@ -4128,17 +3981,17 @@ 1 2 - 7 + 41079 - 3 - 4 - 1 + 2 + 3 + 4107 - 5 - 6 - 2 + 16 + 17 + 4107 @@ -4148,31 +4001,31 @@ xmlChars - 869 + 13383839 id - 869 + 13383839 text - 427 + 5862105 parentid - 432 + 6926075 idx - 87 + 1281693 isCDATA - 1 + 4107 fileid - 14 + 94483 @@ -4186,7 +4039,7 @@ 1 2 - 869 + 13383839 @@ -4202,7 +4055,7 @@ 1 2 - 869 + 13383839 @@ -4218,7 +4071,7 @@ 1 2 - 869 + 13383839 @@ -4234,7 +4087,7 @@ 1 2 - 869 + 13383839 @@ -4250,7 +4103,7 @@ 1 2 - 869 + 13383839 @@ -4266,22 +4119,17 @@ 1 2 - 339 + 5081586 2 - 3 - 53 - - - 3 - 49 - 33 + 4 + 480635 - 68 - 90 - 2 + 4 + 567 + 299883 @@ -4297,22 +4145,17 @@ 1 2 - 342 + 5098018 2 - 3 - 50 - - - 3 - 28 - 33 + 4 + 484743 - 28 - 32 - 2 + 4 + 179 + 279343 @@ -4328,12 +4171,12 @@ 1 2 - 400 + 5701893 2 - 58 - 27 + 298 + 160211 @@ -4349,7 +4192,7 @@ 1 2 - 427 + 5862105 @@ -4365,17 +4208,12 @@ 1 2 - 380 + 5710109 2 - 4 - 36 - - - 4 - 11 - 11 + 22 + 151995 @@ -4391,27 +4229,22 @@ 1 2 - 302 + 5328066 2 3 - 53 + 583334 3 - 4 - 28 - - - 4 - 7 - 34 + 5 + 521715 - 7 - 60 - 15 + 5 + 308 + 492959 @@ -4427,22 +4260,22 @@ 1 2 - 314 + 5664921 2 3 - 67 + 558686 3 - 5 - 37 + 7 + 595658 - 5 - 26 - 14 + 7 + 14 + 106807 @@ -4458,27 +4291,22 @@ 1 2 - 302 + 5328066 2 3 - 53 + 583334 3 - 4 - 28 - - - 4 - 7 - 34 + 5 + 521715 - 7 - 60 - 15 + 5 + 308 + 492959 @@ -4494,7 +4322,7 @@ 1 2 - 432 + 6926075 @@ -4510,7 +4338,7 @@ 1 2 - 432 + 6926075 @@ -4526,32 +4354,17 @@ 1 2 - 55 - - - 2 - 3 - 3 + 1105050 3 - 4 - 11 - - - 4 - 7 - 7 - - - 8 - 28 - 7 + 6 + 110915 - 41 - 408 - 4 + 6 + 1550 + 65727 @@ -4567,32 +4380,17 @@ 1 2 - 55 + 1105050 2 3 - 3 + 102699 3 - 4 - 12 - - - 4 - 7 - 7 - - - 7 - 28 - 7 - - - 44 - 251 - 3 + 923 + 73943 @@ -4608,32 +4406,17 @@ 1 2 - 55 - - - 2 - 3 - 3 + 1105050 3 - 4 - 11 - - - 4 - 7 - 7 - - - 8 - 28 - 7 + 6 + 110915 - 41 - 408 - 4 + 6 + 1550 + 65727 @@ -4649,7 +4432,7 @@ 1 2 - 87 + 1281693 @@ -4665,32 +4448,12 @@ 1 2 - 55 - - - 2 - 3 - 3 - - - 3 - 4 - 12 + 1215965 4 - 5 - 7 - - - 5 - 12 - 7 - - - 13 - 15 - 3 + 24 + 65727 @@ -4704,9 +4467,9 @@ 12 - 869 - 870 - 1 + 3258 + 3259 + 4107 @@ -4720,9 +4483,9 @@ 12 - 427 - 428 - 1 + 1427 + 1428 + 4107 @@ -4736,9 +4499,9 @@ 12 - 432 - 433 - 1 + 1686 + 1687 + 4107 @@ -4752,9 +4515,9 @@ 12 - 87 - 88 - 1 + 312 + 313 + 4107 @@ -4768,9 +4531,9 @@ 12 - 14 - 15 - 1 + 23 + 24 + 4107 @@ -4784,69 +4547,54 @@ 12 - 5 - 6 - 1 + 1 + 10 + 8215 - 13 - 14 - 1 + 11 + 13 + 8215 - 14 + 13 15 - 2 + 8215 - 17 - 18 - 1 + 15 + 16 + 4107 - 28 - 29 - 1 + 16 + 17 + 8215 - 30 - 31 - 1 + 18 + 21 + 8215 - 34 - 35 - 1 + 23 + 49 + 8215 - 35 - 36 - 1 + 51 + 52 + 4107 - 36 - 37 - 1 - - - 80 - 81 - 1 - - - 177 - 178 - 1 - - - 191 - 192 - 1 + 52 + 53 + 28755 - 195 - 196 - 1 + 118 + 2510 + 8215 @@ -4860,69 +4608,54 @@ 12 - 3 - 4 - 1 - - - 7 - 8 - 2 + 1 + 2 + 4107 - 9 - 10 - 1 + 4 + 5 + 16431 - 13 - 14 - 1 + 5 + 6 + 4107 - 15 - 16 - 1 + 6 + 7 + 12323 - 18 - 19 - 1 + 7 + 8 + 4107 - 24 - 25 - 1 + 8 + 9 + 8215 - 25 - 26 - 1 + 23 + 24 + 4107 26 27 - 1 - - - 49 - 50 - 1 - - - 100 - 101 - 1 + 28755 - 105 - 106 - 1 + 27 + 37 + 8215 - 118 - 119 - 1 + 1314 + 1315 + 4107 @@ -4936,64 +4669,44 @@ 12 - 3 - 4 - 1 - - - 7 - 8 - 1 - - - 9 - 10 - 2 - - - 10 - 11 - 1 - - - 14 - 15 - 1 + 1 + 2 + 4107 - 15 - 16 - 2 + 5 + 6 + 28755 - 18 - 19 - 1 + 6 + 7 + 8215 - 20 - 21 - 1 + 7 + 9 + 8215 - 33 - 34 - 1 + 23 + 24 + 4107 - 88 - 89 - 1 + 26 + 27 + 28755 - 95 - 96 - 1 + 27 + 55 + 8215 - 96 - 97 - 1 + 1337 + 1338 + 4107 @@ -5007,54 +4720,49 @@ 12 - 2 - 3 - 1 - - - 4 - 5 - 2 + 1 + 4 + 8215 - 5 - 6 - 1 + 6 + 7 + 8215 7 8 - 3 + 20539 - 9 - 10 - 1 + 8 + 9 + 8215 - 13 - 14 - 1 + 11 + 12 + 4107 - 15 - 16 - 2 + 12 + 13 + 8215 - 32 - 33 - 1 + 13 + 14 + 8215 - 35 - 36 - 1 + 14 + 15 + 24647 - 65 - 66 - 1 + 310 + 311 + 4107 @@ -5070,7 +4778,7 @@ 1 2 - 14 + 94483 @@ -5080,15 +4788,15 @@ xmllocations - 1825 + 26028241 xmlElement - 1825 + 26028241 location - 1825 + 26028241 @@ -5102,7 +4810,7 @@ 1 2 - 1825 + 26028241 @@ -5118,7 +4826,7 @@ 1 2 - 1825 + 26028241 @@ -5128,15 +4836,15 @@ compilations - 1 + 31407 id - 1 + 31407 cwd - 1 + 31407 @@ -5150,7 +4858,7 @@ 1 2 - 1 + 31407 @@ -5166,7 +4874,7 @@ 1 2 - 1 + 31407 @@ -5176,19 +4884,19 @@ compilation_args - 3 + 94222 id - 1 + 31407 num - 3 + 5234 arg - 3 + 5234 @@ -5202,7 +4910,7 @@ 3 4 - 1 + 31407 @@ -5218,7 +4926,7 @@ 3 4 - 1 + 31407 @@ -5232,9 +4940,9 @@ 12 - 1 - 2 - 3 + 18 + 19 + 5234 @@ -5250,7 +4958,7 @@ 1 2 - 3 + 5234 @@ -5264,9 +4972,9 @@ 12 - 1 - 2 - 3 + 18 + 19 + 5234 @@ -5282,7 +4990,7 @@ 1 2 - 3 + 5234 @@ -5436,23 +5144,23 @@ diagnostic_for - 0 + 233782 diagnostic - 0 + 233782 compilation - 0 + 214 file_number - 0 + 56356 file_number_diagnostic_number - 0 + 19713 @@ -5466,7 +5174,7 @@ 1 2 - 1 + 233782 @@ -5482,7 +5190,7 @@ 1 2 - 1 + 233782 @@ -5498,7 +5206,7 @@ 1 2 - 1 + 233782 @@ -5510,7 +5218,13 @@ 12 - + + + 1091 + 1092 + 214 + + @@ -5520,7 +5234,13 @@ 12 - + + + 263 + 264 + 214 + + @@ -5530,7 +5250,13 @@ 12 - + + + 92 + 93 + 214 + + @@ -5540,7 +5266,43 @@ 12 - + + + 1 + 2 + 26999 + + + 2 + 3 + 8142 + + + 3 + 4 + 5785 + + + 4 + 6 + 4928 + + + 6 + 11 + 4714 + + + 11 + 18 + 4285 + + + 18 + 93 + 1499 + + @@ -5550,7 +5312,13 @@ 12 - + + + 1 + 2 + 56356 + + @@ -5560,7 +5328,43 @@ 12 - + + + 1 + 2 + 26999 + + + 2 + 3 + 8142 + + + 3 + 4 + 5785 + + + 4 + 6 + 4928 + + + 6 + 11 + 4714 + + + 11 + 18 + 4285 + + + 18 + 93 + 1499 + + @@ -5570,47 +5374,125 @@ 12 - - - - - - file_number_diagnostic_number - compilation - - - 12 - - - - - - file_number_diagnostic_number - file_number - - - 12 - - + + + 1 + 2 + 6642 + + + 2 + 3 + 4714 + + + 3 + 4 + 3428 + + + 4 + 10 + 1499 + + + 10 + 33 + 1499 + + + 33 + 100 + 1499 + + + 137 + 264 + 428 + + + + + + + file_number_diagnostic_number + compilation + + + 12 + + + 1 + 2 + 19713 + + + + + + + file_number_diagnostic_number + file_number + + + 12 + + + 1 + 2 + 6642 + + + 2 + 3 + 4714 + + + 3 + 4 + 3428 + + + 4 + 10 + 1499 + + + 10 + 33 + 1499 + + + 33 + 100 + 1499 + + + 137 + 264 + 428 + + + compilation_finished - 1 + 31407 id - 1 + 31407 cpu_seconds - 1 + 1744 elapsed_seconds - 1 + 31407 @@ -5624,7 +5506,7 @@ 1 2 - 1 + 31407 @@ -5640,7 +5522,7 @@ 1 2 - 1 + 31407 @@ -5654,9 +5536,9 @@ 12 - 1 - 2 - 1 + 18 + 19 + 1744 @@ -5670,9 +5552,9 @@ 12 - 1 - 2 - 1 + 18 + 19 + 1744 @@ -5688,7 +5570,7 @@ 1 2 - 1 + 31407 @@ -5704,7 +5586,7 @@ 1 2 - 1 + 31407 @@ -5714,19 +5596,19 @@ compilation_compiling_files - 515 + 82070 id - 1 + 214 num - 515 + 82070 file - 515 + 82070 @@ -5738,9 +5620,9 @@ 12 - 515 - 516 - 1 + 383 + 384 + 214 @@ -5754,9 +5636,9 @@ 12 - 515 - 516 - 1 + 383 + 384 + 214 @@ -5772,7 +5654,7 @@ 1 2 - 515 + 82070 @@ -5788,7 +5670,7 @@ 1 2 - 515 + 82070 @@ -5804,7 +5686,7 @@ 1 2 - 515 + 82070 @@ -5820,7 +5702,7 @@ 1 2 - 515 + 82070 @@ -5830,31 +5712,31 @@ diagnostics - 0 + 233782 id - 0 + 233782 severity - 0 + 214 error_tag - 0 + 642 error_message - 0 + 56999 full_error_message - 0 + 56999 location - 0 + 149140 @@ -5868,7 +5750,7 @@ 1 2 - 1 + 233782 @@ -5884,7 +5766,7 @@ 1 2 - 1 + 233782 @@ -5900,7 +5782,7 @@ 1 2 - 1 + 233782 @@ -5916,7 +5798,7 @@ 1 2 - 1 + 233782 @@ -5932,7 +5814,7 @@ 1 2 - 1 + 233782 @@ -5944,7 +5826,13 @@ 12 - + + + 1091 + 1092 + 214 + + @@ -5954,7 +5842,13 @@ 12 - + + + 3 + 4 + 214 + + @@ -5964,7 +5858,13 @@ 12 - + + + 266 + 267 + 214 + + @@ -5974,7 +5874,13 @@ 12 - + + + 266 + 267 + 214 + + @@ -5984,7 +5890,13 @@ 12 - + + + 696 + 697 + 214 + + @@ -5994,7 +5906,23 @@ 12 - + + + 16 + 17 + 214 + + + 51 + 52 + 214 + + + 1024 + 1025 + 214 + + @@ -6004,7 +5932,13 @@ 12 - + + + 1 + 2 + 642 + + @@ -6014,7 +5948,23 @@ 12 - + + + 10 + 11 + 214 + + + 47 + 48 + 214 + + + 210 + 211 + 214 + + @@ -6024,7 +5974,23 @@ 12 - + + + 10 + 11 + 214 + + + 47 + 48 + 214 + + + 210 + 211 + 214 + + @@ -6034,7 +6000,23 @@ 12 - + + + 9 + 10 + 214 + + + 39 + 40 + 214 + + + 680 + 681 + 214 + + @@ -6044,7 +6026,38 @@ 12 - + + + 1 + 2 + 32142 + + + 2 + 3 + 8357 + + + 3 + 4 + 6428 + + + 4 + 7 + 4928 + + + 7 + 17 + 4285 + + + 20 + 214 + 857 + + @@ -6054,7 +6067,13 @@ 12 - + + + 1 + 2 + 56999 + + @@ -6064,7 +6083,18 @@ 12 - + + + 1 + 2 + 56784 + + + 2 + 3 + 214 + + @@ -6074,7 +6104,13 @@ 12 - + + + 1 + 2 + 56999 + + @@ -6084,27 +6120,90 @@ 12 - - - - - - full_error_message - id - - - 12 - - - - - - full_error_message - severity + + + 1 + 2 + 39642 + + + 2 + 3 + 6214 + + + 3 + 4 + 4071 + + + 4 + 8 + 4499 + + + 8 + 214 + 2571 + + + + + + + full_error_message + id 12 - + + + 1 + 2 + 32142 + + + 2 + 3 + 8357 + + + 3 + 4 + 6428 + + + 4 + 7 + 4928 + + + 7 + 17 + 4285 + + + 20 + 214 + 857 + + + + + + + full_error_message + severity + + + 12 + + + 1 + 2 + 56999 + + @@ -6114,7 +6213,18 @@ 12 - + + + 1 + 2 + 56784 + + + 2 + 3 + 214 + + @@ -6124,7 +6234,13 @@ 12 - + + + 1 + 2 + 56999 + + @@ -6134,7 +6250,33 @@ 12 - + + + 1 + 2 + 39642 + + + 2 + 3 + 6214 + + + 3 + 4 + 4071 + + + 4 + 8 + 4499 + + + 8 + 214 + 2571 + + @@ -6144,7 +6286,23 @@ 12 - + + + 1 + 2 + 133069 + + + 2 + 4 + 11571 + + + 4 + 93 + 4499 + + @@ -6154,7 +6312,13 @@ 12 - + + + 1 + 2 + 149140 + + @@ -6164,7 +6328,18 @@ 12 - + + + 1 + 2 + 142283 + + + 2 + 3 + 6857 + + @@ -6174,7 +6349,18 @@ 12 - + + + 1 + 2 + 142069 + + + 2 + 15 + 7071 + + @@ -6184,7 +6370,18 @@ 12 - + + + 1 + 2 + 142069 + + + 2 + 15 + 7071 + + @@ -6192,31 +6389,31 @@ locations_default - 539178 + 37058201 id - 539178 + 37058201 file - 529 + 115023 beginLine - 10312 + 6174312 beginColumn - 211 + 1026998 endLine - 10378 + 7357414 endColumn - 274 + 1154345 @@ -6230,7 +6427,7 @@ 1 2 - 539178 + 37058201 @@ -6246,7 +6443,7 @@ 1 2 - 539178 + 37058201 @@ -6262,7 +6459,7 @@ 1 2 - 539178 + 37058201 @@ -6278,7 +6475,7 @@ 1 2 - 539178 + 37058201 @@ -6294,7 +6491,7 @@ 1 2 - 539178 + 37058201 @@ -6308,74 +6505,74 @@ 12 - 4 - 39 - 41 + 2 + 24 + 8215 - 39 - 120 - 40 + 28 + 30 + 8215 - 120 - 208 - 40 + 33 + 38 + 8215 - 210 - 290 - 40 + 38 + 39 + 8215 - 291 - 372 - 40 + 44 + 48 + 8215 - 372 - 453 - 41 + 58 + 68 + 8215 - 456 - 563 - 40 + 72 + 86 + 8215 - 565 - 769 - 40 + 126 + 132 + 8215 - 774 - 1007 - 40 + 133 + 134 + 4107 - 1012 - 1339 - 42 + 134 + 135 + 12323 - 1347 - 1700 - 40 + 135 + 136 + 12323 - 1701 - 2804 - 40 + 211 + 279 + 8215 - 2873 - 6918 - 40 + 1057 + 1261 + 8215 - 8171 - 11207 - 5 + 4417 + 4418 + 4107 @@ -6389,69 +6586,64 @@ 12 - 3 - 15 - 44 - - - 15 - 27 - 42 + 2 + 11 + 8215 - 27 - 46 - 40 + 12 + 14 + 8215 - 46 - 63 - 43 + 14 + 16 + 8215 - 63 - 78 - 40 + 16 + 17 + 4107 - 78 - 94 - 41 + 17 + 18 + 8215 - 95 - 120 - 40 + 20 + 21 + 8215 - 120 - 152 - 41 + 21 + 24 + 8215 - 152 - 188 - 40 + 28 + 34 + 8215 - 189 - 247 - 41 + 34 + 35 + 32863 - 249 - 325 - 40 + 40 + 109 + 8215 - 336 - 544 - 40 + 168 + 228 + 8215 - 554 - 10233 - 37 + 1355 + 1356 + 4107 @@ -6465,69 +6657,79 @@ 12 - 3 - 16 - 40 + 2 + 18 + 8215 - 16 - 34 - 40 + 19 + 20 + 8215 - 34 - 44 - 40 + 21 + 22 + 8215 - 45 - 51 - 44 + 22 + 23 + 8215 - 51 - 58 - 41 + 23 + 24 + 8215 - 58 - 63 - 47 + 25 + 27 + 8215 - 63 - 68 - 44 + 32 + 59 + 8215 - 68 - 73 - 43 + 60 + 65 + 8215 - 73 - 80 - 47 + 65 + 67 + 8215 - 80 - 86 - 43 + 67 + 68 + 4107 - 86 - 98 - 42 + 68 + 69 + 8215 - 98 - 115 - 42 + 69 + 70 + 4107 + + + 70 + 71 + 8215 + + + 80 + 93 + 8215 - 115 - 157 - 16 + 101 + 132 + 8215 @@ -6541,74 +6743,69 @@ 12 - 3 - 16 - 41 - - - 16 - 31 - 40 + 2 + 12 + 8215 - 31 - 52 - 40 + 12 + 14 + 8215 - 52 - 73 - 43 + 14 + 15 + 4107 - 73 - 92 - 42 + 15 + 16 + 8215 - 92 - 111 - 40 + 16 + 17 + 8215 - 111 - 139 - 40 + 19 + 20 + 8215 - 139 - 180 - 40 + 26 + 29 + 8215 - 180 - 219 - 40 + 30 + 38 + 8215 - 223 - 293 - 40 + 38 + 39 + 20539 - 294 - 370 - 40 + 39 + 40 + 12323 - 373 - 616 - 40 + 40 + 110 + 8215 - 617 - 1835 - 40 + 202 + 266 + 8215 - 2166 - 10377 - 3 + 1676 + 1677 + 4107 @@ -6622,69 +6819,79 @@ 12 - 4 - 21 - 42 + 2 + 17 + 8215 - 22 - 45 - 41 + 18 + 20 + 8215 - 46 - 59 - 43 + 23 + 25 + 8215 - 59 - 65 - 40 + 25 + 26 + 8215 - 65 - 71 - 42 + 26 + 31 + 8215 - 71 - 76 - 47 + 33 + 41 + 8215 - 76 - 81 - 40 + 42 + 61 + 8215 - 81 - 85 - 48 + 71 + 72 + 4107 85 - 91 - 41 + 86 + 8215 - 91 - 97 - 42 + 86 + 87 + 4107 - 97 - 105 - 41 + 88 + 89 + 8215 - 105 - 119 - 42 + 89 + 91 + 8215 - 119 - 166 - 20 + 91 + 92 + 8215 + + + 92 + 102 + 8215 + + + 125 + 149 + 8215 @@ -6700,32 +6907,47 @@ 1 2 - 6869 + 1142021 2 - 7 - 843 + 3 + 1092726 - 7 - 20 - 796 + 3 + 4 + 1039322 - 20 - 80 - 780 + 4 + 5 + 603874 - 80 - 698 - 774 + 5 + 6 + 612090 - 699 - 1775 - 250 + 6 + 7 + 390259 + + + 7 + 9 + 546363 + + + 9 + 21 + 484743 + + + 21 + 179 + 262911 @@ -6741,32 +6963,22 @@ 1 2 - 6947 + 5311634 2 3 - 868 + 353287 3 - 6 - 899 - - - 6 - 24 - 774 - - - 24 - 304 - 774 + 22 + 464203 - 305 - 530 - 50 + 22 + 29 + 45187 @@ -6782,32 +6994,47 @@ 1 2 - 6894 + 1146129 2 + 3 + 1121481 + + + 3 + 4 + 1051646 + + + 4 5 - 789 + 665494 5 - 11 - 780 + 6 + 624414 - 11 - 30 - 796 + 6 + 7 + 402583 - 30 - 72 - 779 + 7 + 8 + 517607 - 72 - 115 - 274 + 8 + 17 + 497067 + + + 17 + 57 + 147887 @@ -6823,27 +7050,17 @@ 1 2 - 7630 + 2690735 2 3 - 1017 + 3031698 3 - 6 - 779 - - - 6 - 21 - 792 - - - 21 - 315 - 94 + 14 + 451879 @@ -6859,32 +7076,47 @@ 1 2 - 6871 + 1630873 2 + 3 + 624414 + + + 3 + 4 + 1063970 + + + 4 5 - 793 + 636738 5 - 12 - 789 + 6 + 644954 - 12 - 33 - 778 + 6 + 7 + 480635 - 33 - 81 - 781 + 7 + 9 + 464203 - 81 - 127 - 300 + 9 + 19 + 476527 + + + 19 + 65 + 151995 @@ -6900,67 +7132,52 @@ 1 2 - 29 + 308099 2 - 4 - 19 - - - 4 - 9 - 16 - - - 10 - 22 - 16 - - - 22 - 62 - 16 + 3 + 127347 - 62 - 141 - 16 + 3 + 5 + 94483 - 144 - 330 - 16 + 5 + 8 + 90375 - 330 - 759 - 16 + 9 + 16 + 82159 - 781 - 1804 - 16 + 16 + 35 + 78051 - 1846 - 3757 - 16 + 35 + 66 + 78051 - 4042 - 8613 - 16 + 72 + 105 + 78051 - 8764 - 22092 - 16 + 105 + 408 + 78051 - 28067 - 55590 - 3 + 500 + 1007 + 12323 @@ -6976,62 +7193,47 @@ 1 2 - 36 + 320423 2 - 4 - 14 - - - 4 - 10 - 18 - - - 10 - 22 - 17 - - - 22 - 48 - 17 + 3 + 151995 - 49 - 96 - 17 + 3 + 4 + 53403 - 96 - 180 - 16 + 4 + 5 + 90375 - 180 - 292 - 16 + 5 + 6 + 98591 - 297 - 382 - 16 + 6 + 9 + 82159 - 383 - 430 - 16 + 9 + 13 + 69835 - 431 - 463 - 16 + 13 + 17 + 78051 - 463 - 530 - 12 + 17 + 29 + 82159 @@ -7047,67 +7249,47 @@ 1 2 - 36 + 394367 2 - 4 - 13 - - - 4 - 9 - 16 - - - 9 - 20 - 16 - - - 20 - 53 - 16 - - - 55 - 103 - 16 + 3 + 143779 - 107 - 209 - 16 + 3 + 5 + 86267 - 221 - 412 - 16 + 5 + 14 + 78051 - 422 - 682 - 16 + 14 + 32 + 82159 - 706 - 975 - 16 + 32 + 58 + 78051 - 977 - 1410 - 16 + 61 + 82 + 82159 - 1417 - 1983 - 16 + 83 + 623 + 78051 - 2809 - 10184 - 2 + 752 + 753 + 4107 @@ -7123,62 +7305,47 @@ 1 2 - 36 + 394367 2 - 4 - 13 - - - 4 - 9 - 16 - - - 9 - 21 - 19 - - - 24 - 55 - 16 + 3 + 143779 - 58 - 128 - 16 + 3 + 5 + 86267 - 131 - 226 - 16 + 5 + 14 + 78051 - 231 - 453 - 16 + 14 + 31 + 78051 - 480 - 769 - 16 + 31 + 56 + 78051 - 783 - 1037 - 16 + 57 + 80 + 82159 - 1057 - 1521 - 16 + 81 + 412 + 78051 - 1526 - 10180 - 15 + 627 + 773 + 8215 @@ -7194,62 +7361,42 @@ 1 2 - 31 + 468311 2 3 - 16 + 94483 3 - 6 - 17 - - - 6 - 12 - 17 - - - 12 - 21 - 16 - - - 21 - 28 - 16 - - - 28 - 35 - 17 + 5 + 78051 - 35 - 45 - 16 + 5 + 13 + 78051 - 46 - 56 - 16 + 13 + 23 + 90375 - 56 - 77 - 17 + 25 + 34 + 82159 - 77 - 101 - 17 + 34 + 41 + 82159 - 101 - 201 - 15 + 41 + 106 + 53403 @@ -7265,32 +7412,47 @@ 1 2 - 6731 + 3093318 2 + 3 + 505283 + + + 3 + 4 + 796950 + + + 4 + 5 + 801058 + + + 5 6 - 903 + 443663 6 - 16 - 817 + 7 + 303991 - 16 - 58 - 785 + 7 + 8 + 579226 - 58 - 457 - 779 + 8 + 21 + 562794 - 458 - 1734 - 363 + 21 + 174 + 271127 @@ -7306,32 +7468,22 @@ 1 2 - 6847 + 6318092 2 3 - 810 + 382043 3 - 5 - 787 - - - 5 - 14 - 802 - - - 14 - 104 - 780 + 16 + 554578 - 105 - 530 - 352 + 16 + 29 + 102699 @@ -7347,27 +7499,17 @@ 1 2 - 7766 + 4962455 2 3 - 956 + 1934864 3 - 7 - 860 - - - 7 - 27 - 785 - - - 27 - 31 - 11 + 8 + 460095 @@ -7383,32 +7525,47 @@ 1 2 - 6749 + 3101534 2 + 3 + 521715 + + + 3 4 - 616 + 813382 4 - 8 - 878 + 5 + 870894 - 8 - 21 - 799 + 5 + 6 + 468311 - 21 - 53 - 779 + 6 + 7 + 308099 - 53 - 113 - 557 + 7 + 8 + 640846 + + + 8 + 24 + 562794 + + + 24 + 54 + 69835 @@ -7424,32 +7581,47 @@ 1 2 - 6792 + 3130290 2 + 3 + 529931 + + + 3 + 4 + 796950 + + + 4 5 - 936 + 854462 5 - 12 - 801 + 6 + 443663 - 12 - 34 - 791 + 6 + 7 + 414907 - 34 - 83 - 787 + 7 + 9 + 583334 - 83 - 127 - 271 + 9 + 32 + 554578 + + + 33 + 66 + 49295 @@ -7465,57 +7637,57 @@ 1 2 - 33 + 262911 2 3 - 60 + 180751 3 - 9 - 23 + 4 + 32863 - 9 - 40 - 21 + 4 + 5 + 98591 - 43 - 111 - 21 + 5 + 7 + 90375 - 121 - 347 - 21 + 7 + 15 + 90375 - 369 - 1229 - 21 + 15 + 37 + 90375 - 1267 - 3311 - 21 + 40 + 71 + 90375 - 3642 - 7560 - 21 + 71 + 101 + 90375 - 7682 - 12716 - 21 + 101 + 144 + 90375 - 12740 - 20483 - 11 + 146 + 448 + 36971 @@ -7531,52 +7703,52 @@ 1 2 - 94 + 312207 2 - 6 - 19 + 3 + 156103 - 6 - 16 - 21 + 3 + 4 + 53403 - 16 - 45 - 21 + 4 + 5 + 119131 - 45 - 110 - 21 + 5 + 6 + 94483 - 123 - 281 - 21 + 6 + 9 + 102699 - 290 - 393 - 21 + 9 + 12 + 90375 - 395 - 445 - 21 + 12 + 15 + 82159 - 446 - 468 - 21 + 15 + 19 + 94483 - 470 - 530 - 14 + 19 + 29 + 49295 @@ -7592,52 +7764,47 @@ 1 2 - 94 + 414907 2 - 6 - 19 - - - 6 - 21 - 21 + 3 + 160211 - 21 - 52 - 21 + 3 + 5 + 102699 - 54 - 154 - 21 + 5 + 11 + 94483 - 157 - 449 - 21 + 11 + 38 + 90375 - 455 - 808 - 21 + 40 + 66 + 90375 - 814 - 1132 - 21 + 67 + 86 + 90375 - 1145 - 1769 - 21 + 86 + 126 + 94483 - 1792 - 2365 - 14 + 126 + 352 + 16431 @@ -7653,57 +7820,47 @@ 1 2 - 39 + 460095 2 3 - 56 + 102699 3 - 7 - 23 + 4 + 69835 - 7 - 18 - 21 - - - 18 - 27 - 24 - - - 27 - 37 - 22 + 4 + 8 + 106807 - 37 - 49 - 23 + 8 + 16 + 94483 - 49 - 63 - 22 + 16 + 26 + 94483 - 63 - 74 - 20 + 26 + 31 + 86267 - 74 - 102 - 21 + 31 + 35 + 94483 - 103 - 172 - 3 + 35 + 58 + 45187 @@ -7719,52 +7876,47 @@ 1 2 - 94 + 414907 2 - 6 - 19 - - - 6 - 21 - 21 + 3 + 160211 - 21 - 52 - 21 + 3 + 5 + 102699 - 53 - 153 - 21 + 5 + 11 + 94483 - 156 - 444 - 21 + 11 + 38 + 90375 - 446 - 789 - 21 + 40 + 67 + 94483 - 806 - 1121 - 21 + 68 + 87 + 90375 - 1138 - 1726 - 21 + 87 + 127 + 90375 - 1787 - 2357 - 14 + 131 + 394 + 16431 @@ -7774,23 +7926,23 @@ numlines - 514 + 81641 element_id - 514 + 81641 num_lines - 309 + 22071 num_code - 350 + 17999 num_comment - 150 + 10928 @@ -7804,7 +7956,7 @@ 1 2 - 514 + 81641 @@ -7820,7 +7972,7 @@ 1 2 - 514 + 81641 @@ -7836,7 +7988,7 @@ 1 2 - 514 + 81641 @@ -7852,22 +8004,47 @@ 1 2 - 183 + 7285 2 3 - 74 + 3857 3 4 - 32 + 1285 4 + 5 + 2142 + + + 5 + 6 + 1928 + + + 6 7 - 20 + 1928 + + + 7 + 9 + 1285 + + + 9 + 11 + 1285 + + + 11 + 12 + 1071 @@ -7883,22 +8060,37 @@ 1 2 - 187 + 8357 2 3 - 82 + 3642 3 4 - 23 + 2142 4 - 7 - 17 + 5 + 2357 + + + 5 + 6 + 2785 + + + 6 + 8 + 1928 + + + 8 + 10 + 857 @@ -7914,22 +8106,37 @@ 1 2 - 188 + 8785 2 3 - 79 + 3857 3 4 - 28 + 2357 4 + 5 + 2357 + + + 5 + 6 + 1928 + + + 6 7 - 14 + 1285 + + + 7 + 10 + 1499 @@ -7945,22 +8152,37 @@ 1 2 - 252 + 6214 2 3 - 65 + 4071 3 - 5 - 28 + 4 + 2142 - 6 - 18 - 5 + 5 + 8 + 1285 + + + 8 + 10 + 1285 + + + 10 + 13 + 1499 + + + 14 + 22 + 1499 @@ -7976,17 +8198,42 @@ 1 2 - 256 + 7071 2 3 - 67 + 3428 3 + 4 + 2142 + + + 4 + 7 + 1499 + + + 7 + 9 + 1285 + + + 9 + 10 + 857 + + + 10 + 15 + 1499 + + + 17 18 - 27 + 214 @@ -8002,22 +8249,37 @@ 1 2 - 259 + 7071 2 3 - 63 + 3428 3 + 4 + 2142 + + + 4 + 6 + 857 + + + 6 7 - 27 + 1714 - 17 - 18 - 1 + 7 + 9 + 1499 + + + 9 + 16 + 1285 @@ -8033,37 +8295,47 @@ 1 2 - 65 + 3214 2 3 - 27 + 2142 3 4 - 17 + 1285 4 - 5 - 7 + 7 + 642 - 5 - 6 - 10 + 7 + 8 + 428 - 6 - 10 - 12 + 8 + 9 + 1071 - 10 - 31 - 12 + 11 + 18 + 857 + + + 18 + 28 + 857 + + + 37 + 84 + 428 @@ -8079,37 +8351,47 @@ 1 2 - 65 + 3214 2 3 - 27 + 2357 3 4 - 18 + 1285 4 5 - 7 + 214 - 5 - 6 - 10 + 6 + 7 + 857 - 6 - 10 - 13 + 7 + 9 + 857 10 - 25 - 10 + 13 + 642 + + + 14 + 16 + 857 + + + 22 + 39 + 642 @@ -8125,37 +8407,47 @@ 1 2 - 66 + 3214 2 3 - 27 + 2357 3 4 - 17 + 1285 4 - 5 - 6 - - - 5 6 - 10 + 642 6 - 9 - 12 + 8 + 642 - 9 - 24 - 12 + 8 + 10 + 857 + + + 10 + 14 + 857 + + + 14 + 26 + 857 + + + 33 + 34 + 214 @@ -8165,15 +8457,15 @@ files - 529 + 146783 id - 529 + 146783 name - 529 + 146783 @@ -8187,7 +8479,7 @@ 1 2 - 529 + 146783 @@ -8203,7 +8495,7 @@ 1 2 - 529 + 146783 @@ -8213,15 +8505,15 @@ folders - 210 + 98591 id - 210 + 98591 name - 210 + 98591 @@ -8235,7 +8527,7 @@ 1 2 - 210 + 98591 @@ -8251,7 +8543,7 @@ 1 2 - 210 + 98591 @@ -8261,15 +8553,15 @@ containerparent - 738 + 243853 parent - 210 + 97284 child - 738 + 243853 @@ -8283,32 +8575,27 @@ 1 2 - 115 + 56142 2 3 - 32 + 21856 3 4 - 12 + 6214 4 - 6 - 19 - - - 6 - 12 - 16 + 7 + 8357 - 13 - 38 - 16 + 7 + 95 + 4714 @@ -8324,7 +8611,7 @@ 1 2 - 738 + 243853 @@ -8334,15 +8621,15 @@ has_location - 599339 + 14587326 locatable - 599339 + 14587326 location - 537353 + 11868805 @@ -8356,7 +8643,7 @@ 1 2 - 599339 + 14587326 @@ -8372,17 +8659,12 @@ 1 2 - 475682 + 9150285 2 3 - 61627 - - - 3 - 75 - 44 + 2718520 @@ -8392,19 +8674,19 @@ comment_groups - 12083 + 2493839 id - 12083 + 2493839 parent - 509 + 3187 idx - 720 + 846614 @@ -8418,7 +8700,7 @@ 1 2 - 12083 + 2493839 @@ -8434,7 +8716,7 @@ 1 2 - 12083 + 2493839 @@ -8450,67 +8732,52 @@ 1 2 - 44 + 691 2 3 - 45 + 384 3 4 - 32 + 230 4 - 5 - 27 - - - 5 - 7 - 38 - - - 7 - 10 - 47 + 6 + 268 - 10 - 13 - 34 + 6 + 12 + 268 - 13 - 17 - 47 + 12 + 18 + 230 - 17 - 23 - 40 + 18 + 24 + 268 - 23 - 29 - 40 + 34 + 110 + 230 - 29 - 38 - 39 + 256 + 257 + 460 - 38 - 70 - 39 - - - 70 - 721 - 37 + 7980 + 22048 + 153 @@ -8526,67 +8793,52 @@ 1 2 - 44 + 691 2 3 - 45 + 384 3 4 - 32 + 230 4 - 5 - 27 - - - 5 - 7 - 38 - - - 7 - 10 - 47 - - - 10 - 13 - 34 + 6 + 268 - 13 - 17 - 47 + 6 + 12 + 268 - 17 - 23 - 40 + 12 + 18 + 230 - 23 - 29 - 40 + 18 + 24 + 268 - 29 - 38 - 39 + 34 + 110 + 230 - 38 - 70 - 39 + 256 + 257 + 460 - 70 - 721 - 37 + 7980 + 22048 + 153 @@ -8602,37 +8854,27 @@ 1 2 - 429 + 182133 2 3 - 53 + 136129 3 - 8 - 66 + 4 + 221916 - 8 - 16 - 57 + 4 + 5 + 296604 16 - 44 - 54 - - - 44 - 311 - 54 - - - 323 - 510 - 7 + 84 + 9830 @@ -8648,37 +8890,27 @@ 1 2 - 429 + 182133 2 3 - 53 + 136129 3 - 8 - 66 + 4 + 221916 - 8 - 16 - 57 + 4 + 5 + 296604 16 - 44 - 54 - - - 44 - 311 - 54 - - - 323 - 510 - 7 + 84 + 9830 @@ -8688,27 +8920,27 @@ comments - 25724 + 2514805 id - 25724 + 2514805 kind - 2 + 76 parent - 12083 + 2493839 idx - 156 + 1728 text - 20683 + 541522 @@ -8722,7 +8954,7 @@ 1 2 - 25724 + 2514805 @@ -8738,7 +8970,7 @@ 1 2 - 25724 + 2514805 @@ -8754,7 +8986,7 @@ 1 2 - 25724 + 2514805 @@ -8770,7 +9002,7 @@ 1 2 - 25724 + 2514805 @@ -8784,14 +9016,14 @@ 12 - 846 - 847 - 1 + 5 + 6 + 38 - 24878 - 24879 - 1 + 65484 + 65485 + 38 @@ -8805,14 +9037,14 @@ 12 - 846 - 847 - 1 + 5 + 6 + 38 - 11239 - 11240 - 1 + 64938 + 64939 + 38 @@ -8826,14 +9058,14 @@ 12 - 2 - 3 - 1 + 1 + 2 + 38 - 156 - 157 - 1 + 45 + 46 + 38 @@ -8847,14 +9079,14 @@ 12 - 690 - 691 - 1 + 5 + 6 + 38 - 19993 - 19994 - 1 + 14097 + 14098 + 38 @@ -8870,27 +9102,12 @@ 1 2 - 7828 + 2484930 2 - 3 - 1787 - - - 3 - 4 - 1289 - - - 4 - 11 - 937 - - - 11 - 157 - 242 + 46 + 8908 @@ -8906,12 +9123,7 @@ 1 2 - 12081 - - - 2 - 3 - 2 + 2493839 @@ -8927,27 +9139,12 @@ 1 2 - 7828 + 2484930 2 - 3 - 1787 - - - 3 - 4 - 1289 - - - 4 - 11 - 937 - - - 11 - 157 - 242 + 46 + 8908 @@ -8963,27 +9160,12 @@ 1 2 - 7828 + 2484930 2 - 3 - 1817 - - - 3 - 4 - 1275 - - - 4 - 10 - 937 - - - 10 - 131 - 226 + 33 + 8908 @@ -8999,57 +9181,32 @@ 1 2 - 36 + 921 2 - 4 - 13 - - - 4 - 5 - 16 + 3 + 307 5 - 7 - 12 - - - 7 - 9 - 12 - - - 9 - 11 - 6 - - - 12 - 14 - 13 - - - 14 - 24 - 13 + 10 + 153 - 26 - 52 - 12 + 11 + 20 + 153 - 59 - 218 - 12 + 34 + 233 + 153 - 242 - 12084 - 11 + 64943 + 64944 + 38 @@ -9065,12 +9222,12 @@ 1 2 - 154 + 1689 2 3 - 2 + 38 @@ -9086,57 +9243,32 @@ 1 2 - 36 + 921 2 - 4 - 13 - - - 4 - 5 - 16 + 3 + 307 5 - 7 - 12 - - - 7 - 9 - 12 - - - 9 - 11 - 6 - - - 12 - 14 - 13 - - - 14 - 24 - 13 + 10 + 153 - 26 - 52 - 12 + 11 + 20 + 153 - 59 - 218 - 12 + 34 + 233 + 153 - 242 - 12084 - 11 + 64943 + 64944 + 38 @@ -9152,52 +9284,32 @@ 1 2 - 36 + 960 2 - 4 - 14 + 3 + 268 4 - 5 - 18 - - - 5 - 7 - 14 - - - 7 - 9 - 11 - - - 9 - 12 - 14 - - - 12 - 17 - 12 + 8 + 153 - 19 - 36 - 13 + 8 + 15 + 153 - 39 - 128 - 12 + 29 + 188 + 153 - 165 - 10500 - 12 + 13716 + 13717 + 38 @@ -9213,12 +9325,17 @@ 1 2 - 19550 + 494827 2 - 1935 - 1133 + 12 + 40819 + + + 12 + 45601 + 5875 @@ -9234,7 +9351,7 @@ 1 2 - 20683 + 541522 @@ -9250,12 +9367,17 @@ 1 2 - 19575 + 494904 2 - 828 - 1108 + 12 + 40742 + + + 12 + 45601 + 5875 @@ -9271,12 +9393,12 @@ 1 2 - 20523 + 540255 2 - 107 - 160 + 18 + 1267 @@ -9286,15 +9408,15 @@ doc_comments - 4330 + 273911 node - 4330 + 273911 comment - 4330 + 273911 @@ -9308,7 +9430,7 @@ 1 2 - 4330 + 273911 @@ -9324,7 +9446,7 @@ 1 2 - 4330 + 273911 @@ -9334,23 +9456,23 @@ exprs - 414037 + 8869156 id - 414037 + 8869156 kind - 48 + 14536 parent - 219324 + 4516748 idx - 5163 + 258019 @@ -9364,7 +9486,7 @@ 1 2 - 414037 + 8869156 @@ -9380,7 +9502,7 @@ 1 2 - 414037 + 8869156 @@ -9396,7 +9518,7 @@ 1 2 - 414037 + 8869156 @@ -9410,64 +9532,64 @@ 12 - 7 - 20 - 4 + 1 + 2 + 1211 - 21 - 54 - 4 + 2 + 3 + 1615 - 57 - 142 - 4 + 5 + 10 + 1211 - 146 - 236 - 4 + 11 + 13 + 1211 - 248 - 344 - 4 + 13 + 16 + 1211 - 509 - 620 - 4 + 17 + 36 + 1211 - 678 - 839 - 4 + 37 + 44 + 1211 - 1013 - 1235 - 4 + 49 + 120 + 1211 - 1272 - 2705 - 4 + 193 + 250 + 1211 - 3244 - 4582 - 4 + 322 + 516 + 1211 - 5616 - 10361 - 4 + 752 + 1581 + 1211 - 24892 - 237317 - 4 + 3202 + 12977 + 807 @@ -9481,64 +9603,64 @@ 12 - 7 - 20 - 4 + 1 + 2 + 1211 - 21 - 54 - 4 + 2 + 3 + 1615 - 57 - 142 - 4 + 5 + 10 + 1211 - 144 - 207 - 4 + 11 + 13 + 1211 - 233 - 324 - 4 + 13 + 16 + 1211 - 509 - 613 - 4 + 17 + 36 + 1211 - 676 - 790 - 4 + 37 + 39 + 1211 - 1013 - 1226 - 4 + 49 + 107 + 1211 - 1239 - 1949 - 4 + 119 + 177 + 1211 - 2582 - 3985 - 4 + 245 + 323 + 1211 - 4252 - 10115 - 4 + 414 + 1535 + 1211 - 14086 - 154744 - 4 + 2864 + 8533 + 807 @@ -9554,52 +9676,32 @@ 1 2 - 3 + 4441 2 3 - 8 + 4845 3 4 - 10 + 1615 4 - 5 - 6 - - - 5 - 7 - 4 - - - 7 - 8 - 4 - - - 8 - 14 - 3 - - - 15 - 22 - 4 + 11 + 1211 - 23 - 34 - 4 + 11 + 13 + 1211 - 1057 - 5164 - 2 + 14 + 638 + 1211 @@ -9615,22 +9717,22 @@ 1 2 - 65804 + 1170575 2 3 - 133334 + 2867283 3 - 5 - 17889 + 4 + 315760 - 5 - 5144 - 2297 + 4 + 637 + 163129 @@ -9646,17 +9748,17 @@ 1 2 - 137263 + 2711018 2 3 - 75813 + 1642197 3 - 7 - 6248 + 5 + 163533 @@ -9672,22 +9774,22 @@ 1 2 - 65804 + 1170575 2 3 - 133334 + 2867283 3 - 5 - 17889 + 4 + 315760 - 5 - 5144 - 2297 + 4 + 637 + 163129 @@ -9703,22 +9805,12 @@ 1 2 - 3910 + 249943 2 - 3 - 183 - - - 3 - 4 - 782 - - - 4 - 180006 - 288 + 9640 + 8075 @@ -9734,17 +9826,12 @@ 1 2 - 4087 + 250347 2 - 3 - 1033 - - - 3 - 48 - 43 + 33 + 7671 @@ -9760,22 +9847,12 @@ 1 2 - 3910 + 249943 2 - 3 - 183 - - - 3 - 4 - 782 - - - 4 - 180006 - 288 + 9640 + 8075 @@ -9785,19 +9862,19 @@ literals - 270756 + 8555361 expr - 270756 + 8555361 value - 25795 + 75495 raw - 27594 + 77891 @@ -9811,7 +9888,7 @@ 1 2 - 270756 + 8555361 @@ -9827,7 +9904,7 @@ 1 2 - 270756 + 8555361 @@ -9843,37 +9920,42 @@ 1 2 - 14635 + 27811 2 3 - 3291 + 12538 3 4 - 1783 + 6753 4 - 6 - 1931 + 5 + 5276 - 6 - 12 - 1968 + 5 + 8 + 6269 - 12 - 139 - 1935 + 8 + 17 + 5809 + + + 17 + 1233 + 5663 - 139 - 6840 - 252 + 1234 + 3959 + 5373 @@ -9889,12 +9971,12 @@ 1 2 - 24051 + 73171 2 - 5 - 1744 + 4 + 2323 @@ -9910,32 +9992,42 @@ 1 2 - 16038 + 29191 2 3 - 3521 + 13046 3 4 - 1869 + 6777 4 - 7 - 2553 + 5 + 5276 - 7 - 18 - 2129 + 5 + 8 + 6632 - 18 - 6833 - 1484 + 8 + 17 + 5857 + + + 17 + 1239 + 5857 + + + 1240 + 3937 + 5252 @@ -9951,7 +10043,7 @@ 1 2 - 27594 + 77891 @@ -9961,19 +10053,19 @@ constvalues - 43931 + 8093673 expr - 43931 + 8093673 value - 16896 + 27230 exact - 16897 + 27230 @@ -9987,7 +10079,7 @@ 1 2 - 43931 + 8093673 @@ -10003,7 +10095,7 @@ 1 2 - 43931 + 8093673 @@ -10019,17 +10111,37 @@ 1 2 - 14932 + 15539 2 - 4 - 1388 + 3 + 2420 - 4 - 6766 - 576 + 3 + 6 + 2130 + + + 6 + 1243 + 2105 + + + 1243 + 1281 + 2105 + + + 1281 + 1340 + 2057 + + + 1340 + 3974 + 871 @@ -10045,12 +10157,7 @@ 1 2 - 16895 - - - 2 - 3 - 1 + 27230 @@ -10066,17 +10173,37 @@ 1 2 - 14933 + 15539 2 - 4 - 1388 + 3 + 2420 - 4 - 6766 - 576 + 3 + 6 + 2130 + + + 6 + 1243 + 2105 + + + 1243 + 1281 + 2105 + + + 1281 + 1340 + 2057 + + + 1340 + 3974 + 871 @@ -10092,7 +10219,7 @@ 1 2 - 16897 + 27230 @@ -10102,19 +10229,19 @@ fields - 19974 + 995459 id - 19974 + 995459 parent - 9600 + 346065 idx - 57 + 48913 @@ -10128,7 +10255,7 @@ 1 2 - 19974 + 995459 @@ -10144,7 +10271,7 @@ 1 2 - 19974 + 995459 @@ -10160,27 +10287,32 @@ 1 2 - 4790 + 141898 2 3 - 2214 + 76625 3 4 - 1363 + 45908 4 5 - 653 + 32219 5 - 53 - 580 + 7 + 29548 + + + 7 + 290 + 19865 @@ -10196,27 +10328,32 @@ 1 2 - 4790 + 141898 2 3 - 2214 + 76625 3 4 - 1363 + 45908 4 5 - 653 + 32219 5 - 53 - 580 + 7 + 29548 + + + 7 + 290 + 19865 @@ -10232,47 +10369,27 @@ 1 2 - 14 + 38729 2 - 3 - 8 - - - 3 - 6 - 5 + 4 + 1836 - 6 - 11 - 5 + 4 + 12 + 3672 12 - 18 - 5 - - - 19 - 31 - 5 - - - 46 - 105 - 5 - - - 115 - 633 - 5 + 185 + 3672 - 914 - 7063 - 5 + 269 + 1368 + 1001 @@ -10288,47 +10405,27 @@ 1 2 - 14 + 38729 2 - 3 - 8 - - - 3 - 6 - 5 + 4 + 1836 - 6 - 11 - 5 + 4 + 12 + 3672 12 - 18 - 5 - - - 19 - 31 - 5 - - - 46 - 105 - 5 - - - 115 - 633 - 5 + 185 + 3672 - 914 - 7063 - 5 + 269 + 1368 + 1001 @@ -10337,30 +10434,26 @@ - stmts - 73990 + typeparamdecls + 9798 id - 73990 - - - kind - 33 + 9798 parent - 41543 + 8398 idx - 81 + 1399 id - kind + parent 12 @@ -10368,7 +10461,7 @@ 1 2 - 73990 + 9798 @@ -10376,7 +10469,7 @@ id - parent + idx 12 @@ -10384,15 +10477,15 @@ 1 2 - 73990 + 9798 - id - idx + parent + id 12 @@ -10400,85 +10493,61 @@ 1 2 - 73990 + 6999 + + + 2 + 3 + 1399 - kind - id + parent + idx 12 - 2 - 3 - 1 - - - 3 - 4 - 4 - - - 5 - 9 - 3 - - - 18 - 50 - 3 - - - 63 - 72 - 3 - - - 72 - 224 - 3 - - - 301 - 379 - 3 - - - 400 - 615 - 3 - - - 654 - 2136 - 3 + 1 + 2 + 6999 - 3476 - 7606 - 3 + 2 + 3 + 1399 + + + + + + idx + id + + + 12 + - 9225 - 9729 - 3 + 2 + 3 + 699 - 19358 - 19359 - 1 + 12 + 13 + 699 - kind + idx parent @@ -10487,62 +10556,185 @@ 2 3 - 1 + 699 - 3 + 12 + 13 + 699 + + + + + + + + + stmts + 1915917 + + + id + 1915917 + + + kind + 30538 + + + parent + 935456 + + + idx + 33753 + + + + + id + kind + + + 12 + + + 1 + 2 + 1915917 + + + + + + + id + parent + + + 12 + + + 1 + 2 + 1915917 + + + + + + + id + idx + + + 12 + + + 1 + 2 + 1915917 + + + + + + + kind + id + + + 12 + + + 1 + 2 + 1607 + + + 3 4 - 4 + 1607 + + + 4 + 5 + 3214 5 + 6 + 1607 + + + 6 + 7 + 1607 + + + 7 + 8 + 1607 + + + 8 9 - 3 + 1607 - 17 - 35 - 3 + 11 + 12 + 1607 - 47 - 69 - 3 + 13 + 14 + 1607 - 69 - 205 - 3 + 14 + 15 + 1607 + + + 17 + 18 + 1607 + + + 33 + 34 + 1607 - 301 - 367 - 3 + 95 + 96 + 1607 - 385 - 586 - 3 + 106 + 107 + 1607 - 606 - 1154 - 3 + 177 + 178 + 1607 - 1719 - 5672 - 3 + 191 + 192 + 1607 - 5912 - 9226 - 3 + 208 + 209 + 1607 - 18820 - 18821 - 1 + 289 + 290 + 1607 @@ -10550,7 +10742,7 @@ kind - idx + parent 12 @@ -10558,70 +10750,95 @@ 1 2 - 1 + 1607 2 3 - 5 + 1607 3 + 4 + 1607 + + + 4 5 - 2 + 4821 5 - 8 - 3 + 6 + 1607 - 8 - 9 - 3 + 6 + 7 + 1607 - 9 + 7 + 8 + 1607 + + + 12 13 - 3 + 1607 13 - 16 - 3 + 14 + 1607 - 16 - 17 - 2 + 15 + 16 + 1607 17 - 27 - 3 + 18 + 1607 - 27 - 33 - 3 + 75 + 76 + 1607 - 44 - 47 - 3 + 88 + 89 + 1607 - 55 - 82 - 2 + 92 + 93 + 1607 + + + 106 + 107 + 1607 + + + 154 + 155 + 1607 + + + 274 + 275 + 1607 - parent - id + kind + idx 12 @@ -10629,22 +10846,57 @@ 1 2 - 29362 + 3214 2 3 - 6137 + 1607 3 + 4 + 9643 + + + 4 5 - 3650 + 3214 5 - 82 - 2394 + 6 + 1607 + + + 9 + 10 + 1607 + + + 12 + 13 + 1607 + + + 13 + 14 + 1607 + + + 15 + 16 + 3214 + + + 16 + 17 + 1607 + + + 20 + 21 + 1607 @@ -10652,7 +10904,7 @@ parent - kind + id 12 @@ -10660,22 +10912,22 @@ 1 2 - 31418 + 622030 2 3 - 5760 + 162338 3 5 - 3597 + 85187 5 - 11 - 768 + 22 + 65899 @@ -10683,7 +10935,7 @@ parent - idx + kind 12 @@ -10691,30 +10943,30 @@ 1 2 - 29362 + 683108 2 3 - 6137 + 155909 3 - 5 - 3650 + 6 + 72329 - 5 - 82 - 2394 + 6 + 8 + 24109 - idx - id + parent + idx 12 @@ -10722,52 +10974,22 @@ 1 2 - 6 + 622030 2 3 - 20 - - - 5 - 6 - 3 + 162338 - 7 - 8 - 11 - - - 10 - 15 - 7 - - - 15 - 27 - 7 - - - 27 - 70 - 7 - - - 85 - 262 - 7 - - - 314 - 1279 - 7 + 3 + 5 + 85187 - 1720 - 24879 - 6 + 5 + 22 + 65899 @@ -10775,7 +10997,7 @@ idx - kind + id 12 @@ -10783,52 +11005,87 @@ 1 2 - 12 + 1607 - 2 - 3 - 22 + 6 + 7 + 4821 - 3 - 5 - 7 - - - 5 - 6 - 6 + 7 + 8 + 3214 - 6 - 7 - 4 + 8 + 9 + 1607 - 7 - 9 - 7 + 10 + 11 + 1607 - 9 - 13 - 7 + 11 + 12 + 3214 - 13 + 17 18 - 7 + 1607 + + + 19 + 20 + 1607 20 - 28 - 6 + 21 + 1607 + + + 25 + 26 + 1607 29 - 34 - 3 + 30 + 1607 + + + 37 + 38 + 1607 + + + 41 + 42 + 1607 + + + 98 + 99 + 1607 + + + 167 + 168 + 1607 + + + 331 + 332 + 1607 + + + 335 + 336 + 1607 @@ -10836,7 +11093,7 @@ idx - parent + kind 12 @@ -10844,52 +11101,163 @@ 1 2 - 6 + 3214 2 3 - 20 + 1607 + + + 3 + 4 + 3214 + + + 4 + 5 + 4821 5 6 - 3 + 4821 + + + 6 + 7 + 1607 7 8 - 11 + 3214 + + + 8 + 9 + 1607 + + + 9 + 10 + 3214 10 + 11 + 1607 + + + 12 + 13 + 1607 + + + 14 15 - 7 + 1607 - 15 - 27 - 7 + 16 + 17 + 1607 + + + + + + idx + parent + + + 12 + - 27 - 70 - 7 + 1 + 2 + 1607 - 85 - 262 - 7 + 6 + 7 + 4821 + + + 7 + 8 + 3214 + + + 8 + 9 + 1607 + + + 10 + 11 + 1607 + + + 11 + 12 + 3214 + + + 17 + 18 + 1607 + + + 19 + 20 + 1607 + + + 20 + 21 + 1607 + + + 25 + 26 + 1607 + + + 29 + 30 + 1607 + + + 37 + 38 + 1607 + + + 41 + 42 + 1607 + + + 98 + 99 + 1607 + + + 167 + 168 + 1607 - 314 - 1279 - 7 + 331 + 332 + 1607 - 1720 - 24879 - 6 + 335 + 336 + 1607 @@ -10899,23 +11267,23 @@ decls - 8690 + 443378 id - 8690 + 443378 kind - 5 + 528 parent - 1951 + 123356 idx - 226 + 59475 @@ -10929,7 +11297,7 @@ 1 2 - 8690 + 443378 @@ -10945,7 +11313,7 @@ 1 2 - 8690 + 443378 @@ -10961,7 +11329,7 @@ 1 2 - 8690 + 443378 @@ -10975,29 +11343,34 @@ 12 - 280 - 281 - 1 + 2 + 3 + 88 + + + 45 + 46 + 88 - 479 - 480 - 1 + 208 + 209 + 88 - 1349 - 1350 - 1 + 421 + 422 + 88 - 1769 - 1770 - 1 + 1140 + 1141 + 88 - 4813 - 4814 - 1 + 3216 + 3217 + 88 @@ -11011,29 +11384,34 @@ 12 - 196 - 197 - 1 + 2 + 3 + 88 + + + 34 + 35 + 88 - 336 - 337 - 1 + 100 + 101 + 88 - 478 - 479 - 1 + 421 + 422 + 88 - 483 - 484 - 1 + 547 + 548 + 88 - 1566 - 1567 - 1 + 882 + 883 + 88 @@ -11047,29 +11425,29 @@ 12 - 2 - 3 - 1 + 1 + 2 + 176 - 39 - 40 - 1 + 15 + 16 + 88 - 105 - 106 - 1 + 26 + 27 + 88 - 219 - 220 - 1 + 237 + 238 + 88 - 225 - 226 - 1 + 675 + 676 + 88 @@ -11085,27 +11463,27 @@ 1 2 - 1460 + 80886 2 - 6 - 149 + 3 + 16476 - 6 - 12 - 155 + 3 + 5 + 9956 - 12 - 36 - 147 + 5 + 12 + 9956 - 36 - 227 - 40 + 12 + 676 + 6079 @@ -11121,27 +11499,17 @@ 1 2 - 1463 + 83089 2 3 - 111 + 31632 3 - 4 - 185 - - - 4 - 5 - 141 - - - 5 6 - 51 + 8634 @@ -11157,27 +11525,27 @@ 1 2 - 1460 + 80886 2 - 6 - 149 + 3 + 16476 - 6 - 12 - 155 + 3 + 5 + 9956 - 12 - 36 - 147 + 5 + 12 + 9956 - 36 - 227 - 40 + 12 + 676 + 6079 @@ -11193,57 +11561,22 @@ 1 2 - 4 + 38592 2 3 - 30 + 13833 3 - 4 - 18 - - - 4 - 5 - 66 - - - 5 - 6 - 2 - - - 6 - 7 - 31 - - - 7 - 11 - 17 - - - 11 - 31 - 17 - - - 31 - 65 - 17 - - - 67 - 275 - 17 + 17 + 4581 - 323 - 1952 - 7 + 19 + 1401 + 2467 @@ -11259,27 +11592,17 @@ 1 2 - 7 + 38592 2 3 - 113 + 18503 3 - 4 - 69 - - - 4 - 5 - 35 - - - 5 - 6 - 2 + 7 + 2379 @@ -11295,57 +11618,22 @@ 1 2 - 4 + 38592 2 3 - 30 + 13833 3 - 4 - 18 + 17 + 4581 - 4 - 5 - 66 - - - 5 - 6 - 2 - - - 6 - 7 - 31 - - - 7 - 11 - 17 - - - 11 - 31 - 17 - - - 31 - 65 - 17 - - - 67 - 275 - 17 - - - 323 - 1952 - 7 + 19 + 1401 + 2467 @@ -11355,23 +11643,23 @@ specs - 7889 + 397829 id - 7889 + 397829 kind - 4 + 5234 parent - 3877 + 193680 idx - 108 + 31407 @@ -11385,7 +11673,7 @@ 1 2 - 7889 + 397829 @@ -11401,7 +11689,7 @@ 1 2 - 7889 + 397829 @@ -11417,7 +11705,7 @@ 1 2 - 7889 + 397829 @@ -11431,24 +11719,19 @@ 12 - 16 - 17 - 1 - - - 1349 - 1350 - 1 + 18 + 19 + 1744 - 3056 - 3057 - 1 + 70 + 71 + 1744 - 3468 - 3469 - 1 + 140 + 141 + 1744 @@ -11462,24 +11745,19 @@ 12 - 16 - 17 - 1 - - - 479 - 480 - 1 + 18 + 19 + 1744 - 1333 - 1334 - 1 + 23 + 24 + 1744 - 2049 - 2050 - 1 + 70 + 71 + 1744 @@ -11495,22 +11773,12 @@ 1 2 - 1 + 3489 - 14 - 15 - 1 - - - 36 - 37 - 1 - - - 108 - 109 - 1 + 18 + 19 + 1744 @@ -11526,22 +11794,22 @@ 1 2 - 3206 + 157037 2 - 6 - 343 + 5 + 15703 6 - 18 - 298 + 11 + 15703 - 18 - 109 - 30 + 14 + 19 + 5234 @@ -11557,7 +11825,7 @@ 1 2 - 3877 + 193680 @@ -11573,22 +11841,22 @@ 1 2 - 3206 + 157037 2 - 6 - 343 + 5 + 15703 6 - 18 - 298 + 11 + 15703 - 18 - 109 - 30 + 14 + 19 + 5234 @@ -11604,32 +11872,47 @@ 1 2 - 53 + 6979 - 2 - 3 - 19 + 3 + 4 + 6979 - 3 - 6 - 9 + 4 + 5 + 3489 - 6 - 28 - 9 + 9 + 10 + 3489 - 30 - 156 - 9 + 12 + 13 + 3489 + + + 14 + 15 + 1744 + + + 16 + 17 + 1744 + + + 21 + 22 + 1744 - 188 - 3878 - 9 + 111 + 112 + 1744 @@ -11645,22 +11928,12 @@ 1 2 - 72 - - - 2 - 3 - 22 + 29662 3 4 - 13 - - - 4 - 5 - 1 + 1744 @@ -11676,32 +11949,47 @@ 1 2 - 53 + 6979 - 2 - 3 - 19 + 3 + 4 + 6979 - 3 - 6 - 9 + 4 + 5 + 3489 - 6 - 28 - 9 + 9 + 10 + 3489 - 30 - 156 - 9 + 12 + 13 + 3489 + + + 14 + 15 + 1744 + + + 16 + 17 + 1744 + + + 21 + 22 + 1744 - 188 - 3878 - 9 + 111 + 112 + 1744 @@ -11711,15 +11999,15 @@ scopes - 36775 + 1519778 id - 36775 + 1519778 kind - 3 + 5234 @@ -11733,7 +12021,7 @@ 1 2 - 36775 + 1519778 @@ -11749,17 +12037,17 @@ 1 2 - 1 + 1744 - 346 - 347 - 1 + 340 + 341 + 1744 - 36428 - 36429 - 1 + 530 + 531 + 1744 @@ -11769,15 +12057,15 @@ scopenesting - 36774 + 1518033 inner - 36774 + 1518033 outer - 21713 + 397829 @@ -11791,7 +12079,7 @@ 1 2 - 36774 + 1518033 @@ -11807,22 +12095,22 @@ 1 2 - 16964 + 280923 2 3 - 2474 + 71539 3 - 7 - 1759 + 5 + 34897 - 7 - 347 - 516 + 5 + 531 + 10469 @@ -11832,15 +12120,15 @@ scopenodes - 36428 + 919952 node - 36428 + 919952 scope - 36428 + 919952 @@ -11854,7 +12142,7 @@ 1 2 - 36428 + 919952 @@ -11870,7 +12158,7 @@ 1 2 - 36428 + 919952 @@ -11880,19 +12168,19 @@ objects - 84909 + 260849313 id - 84909 + 260849313 kind - 9 + 32863 name - 30576 + 153297959 @@ -11906,7 +12194,7 @@ 1 2 - 84909 + 260849313 @@ -11922,7 +12210,7 @@ 1 2 - 84909 + 260849313 @@ -11938,47 +12226,42 @@ 4 5 - 1 - - - 18 - 19 - 1 + 4107 - 20 - 21 - 1 + 22 + 23 + 4107 - 49 - 50 - 1 + 26 + 27 + 4107 - 3468 - 3469 - 1 + 33 + 34 + 4107 - 3602 - 3603 - 1 + 3147 + 3148 + 4107 - 8857 - 8858 - 1 + 17646 + 17647 + 4107 - 17793 - 17794 - 1 + 19579 + 19580 + 4107 - 51098 - 51099 - 1 + 23041 + 23042 + 4107 @@ -11994,47 +12277,42 @@ 4 5 - 1 - - - 18 - 19 - 1 + 4107 - 20 - 21 - 1 + 22 + 23 + 4107 - 38 - 39 - 1 + 23 + 24 + 4107 - 203 - 204 - 1 + 26 + 27 + 4107 - 3004 - 3005 - 1 + 2654 + 2655 + 4107 - 8418 - 8419 - 1 + 7829 + 7830 + 4107 - 10132 - 10133 - 1 + 10951 + 10952 + 4107 - 10913 - 10914 - 1 + 17127 + 17128 + 4107 @@ -12050,22 +12328,17 @@ 1 2 - 25286 + 124595415 2 3 - 2613 + 20954870 3 - 20 - 2304 - - - 20 - 2222 - 373 + 1189 + 7747674 @@ -12081,12 +12354,12 @@ 1 2 - 28809 + 148692899 2 6 - 1767 + 4605059 @@ -12096,15 +12369,15 @@ objectscopes - 54774 + 140464590 object - 54774 + 140464590 scope - 13947 + 1068078 @@ -12118,7 +12391,7 @@ 1 2 - 54774 + 140464590 @@ -12134,32 +12407,72 @@ 1 2 - 7112 + 73943 2 3 - 2972 + 57511 3 4 - 1274 + 69835 4 - 6 - 1264 + 7 + 86267 - 6 - 15 - 1055 + 7 + 13 + 82159 - 15 - 2694 - 270 + 13 + 18 + 86267 + + + 18 + 24 + 86267 + + + 24 + 35 + 86267 + + + 35 + 48 + 82159 + + + 48 + 62 + 82159 + + + 63 + 106 + 82159 + + + 108 + 186 + 82159 + + + 206 + 689 + 82159 + + + 711 + 10035 + 28755 @@ -12169,15 +12482,15 @@ objecttypes - 84907 + 258988392 object - 84907 + 258988392 tp - 13462 + 47738981 @@ -12191,7 +12504,7 @@ 1 2 - 84907 + 258988392 @@ -12207,32 +12520,32 @@ 1 2 - 7893 + 29216043 2 3 - 2114 + 7813401 3 4 - 892 + 3039914 4 7 - 1190 + 3730057 7 - 25 - 1011 + 53 + 3582169 - 25 - 4267 - 362 + 53 + 13253 + 357395 @@ -12242,15 +12555,15 @@ methodreceivers - 9873 + 70035448 method - 9873 + 70035448 receiver - 9873 + 70035448 @@ -12264,7 +12577,7 @@ 1 2 - 9873 + 70035448 @@ -12280,7 +12593,7 @@ 1 2 - 9873 + 70035448 @@ -12290,15 +12603,15 @@ fieldstructs - 10934 + 41038845 field - 10934 + 41038845 struct - 2408 + 8035233 @@ -12312,7 +12625,7 @@ 1 2 - 10934 + 41038845 @@ -12328,42 +12641,42 @@ 1 2 - 260 + 936622 2 3 - 677 + 2033456 3 4 - 468 + 1425473 4 5 - 292 + 1031106 5 6 - 194 + 640846 6 8 - 208 + 694250 8 - 13 - 199 + 12 + 681926 - 13 - 65 - 110 + 12 + 80 + 591550 @@ -12373,15 +12686,15 @@ methodhosts - 838 + 8181678 method - 699 + 5569613 host - 258 + 1579104 @@ -12395,17 +12708,27 @@ 1 2 - 625 + 4430215 2 3 - 56 + 509500 3 - 16 - 18 + 4 + 122140 + + + 4 + 5 + 439706 + + + 5 + 28 + 68049 @@ -12421,55 +12744,60 @@ 1 2 - 99 + 645600 2 3 - 56 + 272199 3 4 - 37 + 158782 4 5 - 20 + 90733 5 - 6 - 15 + 8 + 130864 - 6 + 8 11 - 21 + 123885 11 - 53 - 10 + 19 + 118650 - - - + + 19 + 293 + 38387 + + + + defs - 40703 + 1417649 ident - 40703 + 1417649 object - 40490 + 1388768 @@ -12483,7 +12811,7 @@ 1 2 - 40703 + 1417649 @@ -12499,12 +12827,12 @@ 1 2 - 40383 + 1370071 2 - 15 - 107 + 7 + 18697 @@ -12514,15 +12842,15 @@ uses - 195902 + 4531459 ident - 195902 + 4531459 object - 41616 + 802598 @@ -12536,7 +12864,7 @@ 1 2 - 195902 + 4531459 @@ -12552,37 +12880,37 @@ 1 2 - 15493 + 294651 2 3 - 9727 + 231900 3 4 - 5056 + 77848 4 5 - 2974 + 50873 5 - 7 - 3203 + 8 + 68403 - 7 - 14 - 3336 + 8 + 21 + 60890 - 14 - 6833 - 1827 + 21 + 3870 + 18031 @@ -12592,15 +12920,15 @@ types - 18132 + 64230277 id - 18132 + 64230277 kind - 37 + 68049 @@ -12614,7 +12942,7 @@ 1 2 - 18132 + 64230277 @@ -12630,27 +12958,32 @@ 1 2 - 25 + 41876 - 10 - 30 - 3 + 12 + 25 + 5234 + + + 34 + 143 + 5234 - 247 - 431 - 3 + 158 + 413 + 5234 - 559 - 1904 - 3 + 938 + 4626 + 5234 - 2409 - 8011 - 3 + 4676 + 16593 + 5234 @@ -12660,15 +12993,15 @@ type_of - 397965 + 8829217 expr - 397965 + 8829217 tp - 8687 + 26916 @@ -12682,7 +13015,7 @@ 1 2 - 397965 + 8829217 @@ -12698,57 +13031,52 @@ 1 2 - 2019 + 4744 2 3 - 967 + 5567 3 4 - 711 + 2154 4 5 - 388 + 2444 5 7 - 780 + 2420 7 10 - 772 + 2105 10 15 - 734 + 2033 15 - 23 - 700 - - - 23 - 43 - 652 + 26 + 2105 - 43 - 143 - 652 + 26 + 90 + 2081 - 143 - 46949 - 312 + 90 + 331257 + 1258 @@ -12758,15 +13086,15 @@ typename - 3567 + 13128374 tp - 3567 + 13128374 name - 2983 + 10010298 @@ -12780,7 +13108,7 @@ 1 2 - 3567 + 13128374 @@ -12796,17 +13124,17 @@ 1 2 - 2660 + 8108394 2 - 4 - 267 + 3 + 1210937 - 4 - 17 - 56 + 3 + 26 + 690967 @@ -12816,15 +13144,15 @@ key_type - 430 + 866786 map - 430 + 866786 tp - 149 + 283451 @@ -12838,7 +13166,7 @@ 1 2 - 430 + 866786 @@ -12854,27 +13182,27 @@ 1 2 - 106 + 201291 2 3 - 17 + 28755 3 6 - 12 + 24647 - 6 + 9 13 - 12 + 24647 - 20 - 136 - 2 + 65 + 66 + 4107 @@ -12884,15 +13212,15 @@ element_type - 1412 + 4132640 container - 1412 + 4132640 tp - 916 + 2382635 @@ -12906,7 +13234,7 @@ 1 2 - 1412 + 4132640 @@ -12922,17 +13250,17 @@ 1 2 - 773 + 2008808 2 3 - 94 + 250587 3 - 68 - 49 + 78 + 123239 @@ -12942,15 +13270,15 @@ base_type - 1903 + 8158995 ptr - 1903 + 8158995 tp - 1903 + 8158995 @@ -12964,7 +13292,7 @@ 1 2 - 1903 + 8158995 @@ -12980,7 +13308,7 @@ 1 2 - 1903 + 8158995 @@ -12990,15 +13318,15 @@ underlying_type - 3567 + 12852686 named - 3567 + 12852686 tp - 2755 + 9731120 @@ -13012,7 +13340,7 @@ 1 2 - 3567 + 12852686 @@ -13028,12 +13356,75 @@ 1 2 - 2582 + 8959889 + + + 2 + 9 + 732843 + + + 9 + 252 + 38387 + + + + + + + + + alias_rhs + 660784 + + + alias + 660784 + + + tp + 320067 + + + + + alias + tp + + + 12 + + + 1 + 2 + 660784 + + + + + + + tp + alias + + + 12 + + + 1 + 2 + 284886 2 - 154 - 173 + 4 + 28679 + + + 4 + 348 + 6500 @@ -13043,23 +13434,23 @@ component_types - 36474 + 130391792 parent - 11221 + 37395056 index - 74 + 361503 name - 5540 + 21435505 tp - 4295 + 15006496 @@ -13073,37 +13464,37 @@ 1 2 - 1198 + 4761163 2 3 - 3864 + 10956016 3 4 - 2953 + 9378547 4 5 - 1446 + 5356822 5 6 - 780 + 3076886 6 - 13 - 860 + 11 + 2982402 - 13 - 65 - 120 + 11 + 80 + 883218 @@ -13119,22 +13510,27 @@ 1 2 - 8936 + 29495386 2 3 - 733 + 2230639 3 - 6 - 1008 + 5 + 2768787 - 6 - 64 - 544 + 5 + 39 + 2805758 + + + 39 + 80 + 94483 @@ -13150,32 +13546,32 @@ 1 2 - 2194 + 6646732 2 3 - 4537 + 13724803 3 4 - 2475 + 9657890 4 5 - 1110 + 4284636 5 12 - 848 + 2818082 12 - 52 - 57 + 34 + 262911 @@ -13191,62 +13587,62 @@ 1 2 - 15 + 65727 2 - 4 - 6 + 3 + 32863 - 4 - 7 - 4 + 3 + 5 + 28755 - 8 - 13 - 6 + 5 + 11 + 28755 - 13 - 18 - 6 + 12 + 23 + 28755 - 18 - 28 - 6 + 23 + 31 + 28755 - 29 - 49 - 6 + 34 + 50 + 28755 - 52 - 82 - 6 + 51 + 75 + 28755 - 89 - 193 - 6 + 79 + 149 + 28755 - 232 - 824 - 6 + 169 + 511 + 28755 - 1505 - 6458 - 6 + 778 + 5506 + 28755 - 10274 - 10275 - 1 + 8121 + 8122 + 4107 @@ -13262,52 +13658,52 @@ 1 2 - 22 + 94483 2 - 6 - 6 + 3 + 32863 - 6 - 9 - 6 + 4 + 6 + 28755 - 9 - 16 - 4 + 6 + 14 + 32863 - 16 - 24 - 6 + 17 + 22 + 28755 - 24 - 37 - 6 + 22 + 34 + 28755 - 39 - 61 - 6 + 35 + 55 + 28755 - 69 - 116 - 6 + 58 + 102 + 28755 - 153 - 379 - 6 + 110 + 277 + 28755 - 475 - 1260 - 6 + 331 + 1018 + 28755 @@ -13323,62 +13719,62 @@ 1 2 - 15 + 65727 2 - 4 - 6 + 3 + 32863 - 4 - 7 - 6 + 3 + 5 + 32863 - 7 - 11 - 5 + 5 + 7 + 24647 - 11 - 14 - 5 + 9 + 15 + 28755 15 19 - 6 + 28755 20 - 27 - 5 + 25 + 28755 - 29 - 44 - 6 + 25 + 37 + 28755 - 45 - 72 - 6 + 38 + 59 + 28755 - 86 - 161 - 6 + 67 + 149 + 28755 - 224 - 1436 - 6 + 179 + 1225 + 28755 - 1878 - 2153 - 2 + 1559 + 1560 + 4107 @@ -13394,22 +13790,22 @@ 1 2 - 3941 + 13843935 2 3 - 851 + 4633815 3 - 6 - 484 + 5 + 1733572 - 6 - 8917 - 264 + 5 + 7182 + 1224181 @@ -13425,22 +13821,22 @@ 1 2 - 4284 + 16793473 2 3 - 737 + 2998834 3 - 6 - 440 + 12 + 1618549 - 6 - 28 - 79 + 12 + 31 + 24647 @@ -13456,22 +13852,17 @@ 1 2 - 4599 + 18029979 2 3 - 518 + 2099184 3 - 21 - 416 - - - 21 - 3014 - 7 + 2295 + 1306341 @@ -13487,32 +13878,32 @@ 1 2 - 2055 + 7665514 2 3 - 812 + 2748247 3 4 - 408 + 1207749 4 6 - 394 + 1277585 6 - 11 - 342 + 12 + 1199533 - 11 - 2187 - 284 + 12 + 2060 + 907866 @@ -13528,32 +13919,27 @@ 1 2 - 2111 + 8893803 2 3 - 859 + 2863270 3 4 - 580 + 1409041 4 - 5 - 352 - - - 5 - 10 - 328 + 6 + 1146129 - 10 - 51 - 65 + 6 + 68 + 694250 @@ -13569,22 +13955,22 @@ 1 2 - 2897 + 11165523 2 3 - 865 + 2193668 3 - 5 - 343 + 6 + 1187209 - 5 - 738 - 190 + 6 + 719 + 460095 @@ -13593,38 +13979,26 @@ - array_length - 293 + struct_tags + 41038845 - tp - 293 + parent + 8035233 - len - 103 + index + 324531 + + + tag + 747654 - tp - len - - - 12 - - - 1 - 2 - 293 - - - - - - - len - tp + parent + index 12 @@ -13632,56 +14006,50 @@ 1 2 - 62 + 936622 2 3 - 15 + 2033456 3 4 - 7 + 1425473 4 - 7 - 8 + 5 + 1031106 - 7 - 15 - 7 + 5 + 6 + 640846 - 15 - 26 - 4 + 6 + 8 + 694250 + + + 8 + 12 + 681926 + + + 12 + 80 + 591550 - - - - type_objects - 3567 - - - tp - 3567 - - - object - 3567 - - - - tp - object + parent + tag 12 @@ -13689,15 +14057,20 @@ 1 2 - 3567 + 7891453 + + + 2 + 36 + 143779 - object - tp + index + parent 12 @@ -13705,39 +14078,70 @@ 1 2 - 3567 + 57511 + + + 2 + 3 + 32863 + + + 4 + 5 + 24647 + + + 6 + 11 + 24647 + + + 12 + 22 + 24647 + + + 22 + 25 + 24647 + + + 26 + 36 + 24647 + + + 39 + 55 + 24647 + + + 58 + 93 + 24647 + + + 105 + 220 + 24647 + + + 252 + 887 + 24647 + + + 1233 + 1957 + 12323 - - - - packages - 346 - - - id - 346 - - - name - 281 - - - path - 346 - - - scope - 346 - - - - id - name + index + tag 12 @@ -13745,15 +14149,35 @@ 1 2 - 346 + 180751 + + + 2 + 3 + 73943 + + + 3 + 7 + 24647 + + + 9 + 15 + 24647 + + + 15 + 29 + 20539 - id - path + tag + parent 12 @@ -13761,15 +14185,25 @@ 1 2 - 346 + 673710 + + + 2 + 4 + 61619 + + + 4 + 1931 + 12323 - id - scope + tag + index 12 @@ -13777,15 +14211,40 @@ 1 2 - 346 + 690142 + + + 2 + 80 + 57511 + + + + interface_private_method_ids + 439555 + + + interface + 156103 + + + index + 94483 + + + id + 386151 + + + - name - id + interface + index 12 @@ -13793,25 +14252,45 @@ 1 2 - 255 + 53403 2 3 - 23 + 53403 3 - 40 - 3 + 4 + 12323 + + + 4 + 5 + 8215 + + + 5 + 6 + 12323 + + + 7 + 10 + 12323 + + + 12 + 13 + 4107 - name - path + interface + id 12 @@ -13819,25 +14298,45 @@ 1 2 - 255 + 53403 2 3 - 23 + 53403 3 - 40 - 3 + 4 + 12323 + + + 4 + 5 + 8215 + + + 5 + 6 + 12323 + + + 7 + 10 + 12323 + + + 12 + 13 + 4107 - name - scope + index + interface 12 @@ -13845,24 +14344,39 @@ 1 2 - 255 + 24647 2 3 - 23 + 28755 3 - 40 - 3 + 4 + 16431 + + + 5 + 10 + 8215 + + + 10 + 14 + 8215 + + + 18 + 21 + 8215 - path + index id @@ -13871,31 +14385,40 @@ 1 2 - 346 + 32863 - - - - - - path - name - - - 12 - - 1 - 2 - 346 + 2 + 3 + 28755 + + + 3 + 4 + 8215 + + + 5 + 10 + 8215 + + + 10 + 14 + 8215 + + + 18 + 21 + 8215 - path - scope + id + interface 12 @@ -13903,15 +14426,25 @@ 1 2 - 346 + 345071 + + + 2 + 3 + 28755 + + + 3 + 4 + 12323 - scope - id + id + index 12 @@ -13919,15 +14452,36 @@ 1 2 - 346 + 361503 + + + 2 + 4 + 24647 - - scope - name + + + + array_length + 1528173 + + + tp + 1528173 + + + len + 488851 + + + + + tp + len 12 @@ -13935,15 +14489,15 @@ 1 2 - 346 + 1528173 - scope - path + len + tp 12 @@ -13951,7 +14505,37 @@ 1 2 - 346 + 258803 + + + 2 + 3 + 90375 + + + 3 + 4 + 24647 + + + 4 + 5 + 24647 + + + 5 + 7 + 41079 + + + 8 + 15 + 36971 + + + 16 + 28 + 12323 @@ -13960,30 +14544,78 @@ - modexprs - 9 + type_objects + 13128374 + + + tp + 13128374 + + + object + 13128374 + + + + + tp + object + + + 12 + + + 1 + 2 + 13128374 + + + + + + + object + tp + + + 12 + + + 1 + 2 + 13128374 + + + + + + + + + packages + 924779 id - 9 + 924779 - kind - 4 + name + 570571 - parent - 2 + path + 924779 - idx - 6 + scope + 924779 id - kind + name 12 @@ -13991,7 +14623,7 @@ 1 2 - 9 + 924779 @@ -13999,7 +14631,7 @@ id - parent + path 12 @@ -14007,7 +14639,7 @@ 1 2 - 9 + 924779 @@ -14015,7 +14647,7 @@ id - idx + scope 12 @@ -14023,14 +14655,14 @@ 1 2 - 9 + 924779 - kind + name id @@ -14039,20 +14671,25 @@ 1 2 - 3 + 479838 - 6 - 7 - 1 + 2 + 3 + 57580 + + + 3 + 53 + 33152 - kind - parent + name + path 12 @@ -14060,20 +14697,25 @@ 1 2 - 3 + 479838 2 3 - 1 + 57580 + + + 3 + 53 + 33152 - kind - idx + name + scope 12 @@ -14081,82 +14723,72 @@ 1 2 - 3 + 479838 - 5 - 6 - 1 + 2 + 3 + 57580 + + + 3 + 53 + 33152 - parent + path id 12 - 3 - 4 - 1 - - - 6 - 7 - 1 + 1 + 2 + 924779 - parent - kind + path + name 12 - 2 - 3 - 1 - - - 3 - 4 - 1 + 1 + 2 + 924779 - parent - idx + path + scope 12 - 3 - 4 - 1 - - - 6 - 7 - 1 + 1 + 2 + 924779 - idx + scope id @@ -14165,20 +14797,15 @@ 1 2 - 3 - - - 2 - 3 - 3 + 924779 - idx - kind + scope + name 12 @@ -14186,20 +14813,15 @@ 1 2 - 4 - - - 2 - 3 - 2 + 924779 - idx - parent + scope + path 12 @@ -14207,12 +14829,7 @@ 1 2 - 3 - - - 2 - 3 - 3 + 924779 @@ -14221,26 +14838,30 @@ - modtokens - 13 + modexprs + 259985 - token - 13 + id + 259985 + + + kind + 6979 parent - 7 + 54090 idx - 2 + 24428 - token - parent + id + kind 12 @@ -14248,15 +14869,15 @@ 1 2 - 13 + 259985 - token - idx + id + parent 12 @@ -14264,15 +14885,15 @@ 1 2 - 13 + 259985 - parent - token + id + idx 12 @@ -14280,143 +14901,134 @@ 1 2 - 1 - - - 2 - 3 - 6 + 259985 - parent - idx + kind + id 12 - 1 - 2 - 1 + 13 + 14 + 5234 - 2 - 3 - 6 + 110 + 111 + 1744 - idx - token + kind + parent 12 - 6 - 7 - 1 + 12 + 13 + 1744 - 7 - 8 - 1 + 13 + 14 + 3489 + + + 31 + 32 + 1744 - idx - parent + kind + idx 12 - 6 - 7 - 1 + 1 + 2 + 1744 - 7 - 8 - 1 + 2 + 3 + 1744 + + + 5 + 6 + 1744 + + + 13 + 14 + 1744 - - - - errors - 0 - - - id - 0 - - - kind - 0 - - - msg - 0 - - - rawpos - 0 - - - file - 0 - - - line - 0 - - - col - 0 - - - package - 0 - - - idx - 0 - - - - id - kind + parent + id 12 - 1 - 2 - 1 + 2 + 3 + 8724 + + + 3 + 4 + 19193 + + + 4 + 5 + 6979 + + + 5 + 6 + 10469 + + + 11 + 12 + 5234 + + + 13 + 15 + 3489 - id - msg + parent + kind 12 @@ -14424,31 +15036,66 @@ 1 2 - 1 + 10469 + + + 2 + 3 + 20938 + + + 3 + 4 + 22683 - id - rawpos + parent + idx 12 - 1 - 2 - 1 + 2 + 3 + 8724 + + + 3 + 4 + 19193 + + + 4 + 5 + 6979 + + + 5 + 6 + 10469 + + + 11 + 12 + 5234 + + + 13 + 15 + 3489 - id - file + idx + id 12 @@ -14456,15 +15103,45 @@ 1 2 - 1 + 1744 + + + 2 + 3 + 3489 + + + 5 + 6 + 10469 + + + 11 + 12 + 1744 + + + 15 + 16 + 1744 + + + 26 + 27 + 1744 + + + 31 + 32 + 3489 - id - line + idx + kind 12 @@ -14472,15 +15149,25 @@ 1 2 - 1 + 13958 + + + 2 + 3 + 8724 + + + 3 + 4 + 1744 - id - col + idx + parent 12 @@ -14488,15 +15175,65 @@ 1 2 - 1 + 1744 + + + 2 + 3 + 3489 + + + 5 + 6 + 10469 + + + 11 + 12 + 1744 + + + 15 + 16 + 1744 + + + 26 + 27 + 1744 + + + 31 + 32 + 3489 + + + + modtokens + 410043 + + + token + 164017 + + + parent + 214618 + + + idx + 5234 + + + - id - package + token + parent 12 @@ -14504,14 +15241,34 @@ 1 2 - 1 + 76774 + + + 2 + 3 + 54090 + + + 3 + 5 + 13958 + + + 5 + 9 + 13958 + + + 15 + 19 + 5234 - id + token idx @@ -14520,664 +15277,3123 @@ 1 2 - 1 + 162272 + + + 2 + 3 + 1744 - kind - id - - - 12 - - - - - - kind - msg + parent + token 12 - - - - - - kind - rawpos - - - 12 - - - - - - kind - file - - - 12 - - - - - - kind - line - - - 12 - + + + 1 + 2 + 22683 + + + 2 + 3 + 188445 + + + 3 + 4 + 3489 + + - kind - col + parent + idx 12 - + + + 1 + 2 + 22683 + + + 2 + 3 + 188445 + + + 3 + 4 + 3489 + + - kind - package + idx + token 12 - + + + 2 + 3 + 1744 + + + 40 + 41 + 1744 + + + 53 + 54 + 1744 + + - kind - idx + idx + parent 12 - + + + 2 + 3 + 1744 + + + 110 + 111 + 1744 + + + 123 + 124 + 1744 + + + + + + errors + 232496 + + + id + 232496 + + + kind + 642 + + + msg + 55713 + + + rawpos + 155997 + + + file + 56356 + + + line + 21856 + + + col + 10071 + + + package + 16928 + + + idx + 89355 + + + - msg - id + id + kind 12 - + + + 1 + 2 + 232496 + + - msg - kind + id + msg 12 - + + + 1 + 2 + 232496 + + - msg + id rawpos 12 - + + + 1 + 2 + 232496 + + - msg + id file 12 - + + + 1 + 2 + 232496 + + - msg + id line 12 - + + + 1 + 2 + 232496 + + - msg + id col 12 - + + + 1 + 2 + 232496 + + - msg + id package 12 - + + + 1 + 2 + 232496 + + - msg + id idx 12 - + + + 1 + 2 + 232496 + + - rawpos + kind id 12 - + + + 16 + 17 + 214 + + + 45 + 46 + 214 + + + 1024 + 1025 + 214 + + - rawpos - kind + kind + msg 12 - + + + 10 + 11 + 214 + + + 41 + 42 + 214 + + + 210 + 211 + 214 + + - rawpos - msg + kind + rawpos 12 - - - - + + + 9 + 10 + 214 + + + 39 + 40 + 214 + + + 680 + 681 + 214 + + + + + - rawpos + kind file 12 - + + + 4 + 5 + 214 + + + 26 + 27 + 214 + + + 262 + 263 + 214 + + - rawpos + kind line 12 - + + + 6 + 7 + 214 + + + 16 + 17 + 214 + + + 102 + 103 + 214 + + - rawpos + kind col 12 - + + + 6 + 7 + 214 + + + 8 + 9 + 214 + + + 42 + 43 + 214 + + - rawpos + kind package 12 - + + + 3 + 4 + 214 + + + 36 + 37 + 214 + + + 45 + 46 + 214 + + - rawpos + kind idx 12 - + + + 1 + 2 + 214 + + + 13 + 14 + 214 + + + 417 + 418 + 214 + + - file + msg id 12 - + + + 1 + 2 + 30856 + + + 2 + 3 + 8357 + + + 3 + 4 + 6428 + + + 4 + 7 + 4928 + + + 7 + 17 + 4285 + + + 20 + 214 + 857 + + - file + msg kind 12 - + + + 1 + 2 + 55499 + + + 2 + 3 + 214 + + - file - msg + msg + rawpos 12 - + + + 1 + 2 + 38142 + + + 2 + 3 + 6428 + + + 3 + 4 + 4071 + + + 4 + 8 + 4499 + + + 8 + 214 + 2571 + + - file - rawpos + msg + file 12 - + + + 1 + 2 + 39642 + + + 2 + 3 + 6857 + + + 3 + 5 + 4499 + + + 5 + 17 + 4285 + + + 20 + 214 + 428 + + - file + msg line 12 - + + + 1 + 2 + 42213 + + + 2 + 3 + 5999 + + + 3 + 5 + 4285 + + + 5 + 52 + 3214 + + - file + msg col 12 - + + + 1 + 2 + 51856 + + + 2 + 5 + 3857 + + - file + msg package 12 - + + + 1 + 2 + 49499 + + + 2 + 5 + 4714 + + + 5 + 10 + 1499 + + - file + msg idx 12 - - - - - - line - id - - - 12 - - - - - - line - kind - - - 12 - + + + 1 + 2 + 33213 + + + 2 + 3 + 7928 + + + 3 + 4 + 5999 + + + 4 + 8 + 4285 + + + 8 + 163 + 4285 + + - line - msg + rawpos + id 12 - + + + 1 + 2 + 146355 + + + 2 + 93 + 9642 + + - line - rawpos + rawpos + kind 12 - + + + 1 + 2 + 155997 + + - line - file + rawpos + msg 12 - + + + 1 + 2 + 155354 + + + 3 + 8 + 642 + + - line - col + rawpos + file 12 - + + + 1 + 2 + 155997 + + - line - package + rawpos + line 12 - + + + 1 + 2 + 155997 + + - line - idx + rawpos + col 12 - + + + 1 + 2 + 155997 + + - col - id + rawpos + package 12 - + + + 1 + 2 + 155783 + + + 7 + 8 + 214 + + - col - kind + rawpos + idx 12 - + + + 1 + 2 + 146569 + + + 2 + 93 + 9428 + + - col - msg + file + id 12 - + + + 1 + 2 + 26999 + + + 2 + 3 + 8142 + + + 3 + 4 + 5785 + + + 4 + 6 + 4928 + + + 6 + 11 + 4928 + + + 11 + 19 + 4285 + + + 19 + 93 + 1285 + + - col - rawpos + file + kind 12 - + + + 1 + 2 + 50570 + + + 2 + 3 + 5357 + + + 3 + 4 + 428 + + - col - file + file + msg 12 - + + + 1 + 2 + 28071 + + + 2 + 3 + 9856 + + + 3 + 4 + 7071 + + + 4 + 6 + 4499 + + + 6 + 11 + 5142 + + + 11 + 17 + 1714 + + - col - line + file + rawpos 12 - + + + 1 + 2 + 28071 + + + 2 + 3 + 10071 + + + 3 + 4 + 6642 + + + 4 + 6 + 4071 + + + 6 + 11 + 4928 + + + 11 + 18 + 2571 + + - col - package + file + line 12 - - - - - - col - idx - + + + 1 + 2 + 29999 + + + 2 + 3 + 9214 + + + 3 + 4 + 5999 + + + 4 + 6 + 5142 + + + 6 + 12 + 5142 + + + 12 + 16 + 857 + + + + + + + file + col + 12 - + + + 1 + 2 + 43499 + + + 2 + 3 + 5785 + + + 3 + 5 + 5142 + + + 5 + 9 + 1928 + + - package + file + package + + + 12 + + + 1 + 2 + 50999 + + + 2 + 4 + 4285 + + + 4 + 9 + 1071 + + + + + + + file + idx + + + 12 + + + 1 + 2 + 28285 + + + 2 + 3 + 7499 + + + 3 + 4 + 5785 + + + 4 + 5 + 2571 + + + 5 + 8 + 4499 + + + 8 + 13 + 4499 + + + 13 + 93 + 3214 + + + + + + + line id 12 - + + + 1 + 2 + 6642 + + + 2 + 3 + 3642 + + + 3 + 4 + 1499 + + + 4 + 5 + 1071 + + + 5 + 6 + 1071 + + + 6 + 7 + 2142 + + + 7 + 13 + 1714 + + + 14 + 31 + 1714 + + + 31 + 50 + 1714 + + + 53 + 208 + 642 + + - package + line kind 12 - + + + 1 + 2 + 17999 + + + 2 + 3 + 2999 + + + 3 + 4 + 857 + + - package + line msg 12 - + + + 1 + 2 + 7714 + + + 2 + 3 + 3214 + + + 3 + 4 + 2571 + + + 4 + 5 + 1928 + + + 5 + 6 + 1499 + + + 6 + 10 + 1714 + + + 10 + 16 + 1714 + + + 16 + 23 + 1499 + + - package + line rawpos 12 - + + + 1 + 2 + 6857 + + + 2 + 3 + 3642 + + + 3 + 4 + 2142 + + + 4 + 5 + 1285 + + + 5 + 6 + 1499 + + + 6 + 7 + 1714 + + + 7 + 19 + 1928 + + + 20 + 32 + 1714 + + + 32 + 87 + 1071 + + - package + line file 12 - + + + 1 + 2 + 7071 + + + 2 + 3 + 4071 + + + 3 + 4 + 1928 + + + 4 + 5 + 1714 + + + 5 + 6 + 857 + + + 6 + 7 + 1928 + + + 7 + 18 + 1499 + + + 18 + 27 + 1714 + + + 29 + 86 + 1071 + + + + + + + line + col + + + 12 + + + 1 + 2 + 10499 + + + 2 + 3 + 3857 + + + 3 + 4 + 2571 + + + 4 + 5 + 2785 + + + 5 + 9 + 1928 + + + 10 + 11 + 214 + + + + + + + line + package + + + 12 + + + 1 + 2 + 8142 + + + 2 + 3 + 5571 + + + 3 + 4 + 2571 + + + 4 + 6 + 1714 + + + 7 + 10 + 1928 + + + 10 + 19 + 1714 + + + 21 + 22 + 214 + + + + + + + line + idx + + + 12 + + + 1 + 2 + 7071 + + + 2 + 3 + 3642 + + + 3 + 4 + 1714 + + + 4 + 6 + 1928 + + + 6 + 7 + 2142 + + + 7 + 14 + 1714 + + + 15 + 30 + 1714 + + + 30 + 77 + 1714 + + + 187 + 188 + 214 + + + + + + + col + id + + + 12 + + + 1 + 2 + 3428 + + + 2 + 3 + 2142 + + + 3 + 4 + 1071 + + + 4 + 7 + 642 + + + 7 + 10 + 857 + + + 10 + 14 + 642 + + + 17 + 24 + 857 + + + 107 + 768 + 428 + + + + + + + col + kind + + + 12 + + + 1 + 2 + 8142 + + + 2 + 3 + 1928 + + + + + + + col + msg + + + 12 + + + 1 + 2 + 4499 + + + 2 + 3 + 2357 + + + 3 + 6 + 857 + + + 6 + 9 + 857 + + + 9 + 12 + 642 + + + 13 + 84 + 857 + + + + + + + col + rawpos + + + 12 + + + 1 + 2 + 3428 + + + 2 + 3 + 2571 + + + 3 + 4 + 1071 + + + 4 + 8 + 857 + + + 8 + 14 + 857 + + + 17 + 22 + 857 + + + 100 + 436 + 428 + + + + + + + col + file + + + 12 + + + 1 + 2 + 4714 + + + 2 + 3 + 2357 + + + 3 + 7 + 857 + + + 7 + 8 + 428 + + + 9 + 11 + 857 + + + 15 + 223 + 857 + + + + + + + col + line + + + 12 + + + 1 + 2 + 4285 + + + 2 + 3 + 2357 + + + 3 + 4 + 857 + + + 4 + 7 + 857 + + + 7 + 12 + 642 + + + 13 + 19 + 857 + + + 80 + 81 + 214 + + + + + + + col + package + + + 12 + + + 1 + 2 + 5785 + + + 2 + 3 + 2142 + + + 3 + 5 + 857 + + + 8 + 13 + 857 + + + 14 + 45 + 428 + + + + + + + col + idx + + + 12 + + + 1 + 2 + 3642 + + + 2 + 3 + 2142 + + + 3 + 4 + 1071 + + + 4 + 7 + 642 + + + 7 + 9 + 857 + + + 9 + 14 + 857 + + + 17 + 358 + 857 + + + + + + + package + id + + + 12 + + + 1 + 2 + 11571 + + + 2 + 3 + 1285 + + + 3 + 5 + 1285 + + + 5 + 10 + 1285 + + + 15 + 204 + 1285 + + + 417 + 418 + 214 + + + + + + + package + kind + + + 12 + + + 1 + 2 + 16285 + + + 2 + 4 + 642 + + + + + + + package + msg + + + 12 + + + 1 + 2 + 11571 + + + 2 + 3 + 1714 + + + 3 + 4 + 1285 + + + 4 + 15 + 1499 + + + 25 + 71 + 857 + + + + + + + package + rawpos + + + 12 + + + 1 + 2 + 11571 + + + 2 + 3 + 1285 + + + 3 + 4 + 1285 + + + 5 + 10 + 1285 + + + 15 + 128 + 1285 + + + 258 + 259 + 214 + + + + + + + package + file + + + 12 + + + 1 + 2 + 14356 + + + 2 + 4 + 1285 + + + 4 + 95 + 1285 + + + + + + + package + line + + + 12 + + + 1 + 2 + 11785 + + + 2 + 3 + 1285 + + + 3 + 5 + 1285 + + + 5 + 15 + 1285 + + + 15 + 68 + 1285 + + + + + + + package + col + + + 12 + + + 1 + 2 + 14142 + + + 2 + 5 + 1285 + + + 5 + 23 + 1285 + + + 23 + 24 + 214 + + + + + + + package + idx + + + 12 + + + 1 + 2 + 11571 + + + 2 + 3 + 1285 + + + 3 + 5 + 1285 + + + 5 + 10 + 1285 + + + 15 + 204 + 1285 + + + 417 + 418 + 214 + + + + + + + idx + id + + + 12 + + + 1 + 2 + 45856 + + + 2 + 3 + 9642 + + + 3 + 4 + 8357 + + + 4 + 5 + 18428 + + + 5 + 26 + 6857 + + + 79 + 80 + 214 + + + + + + + idx + kind + + + 12 + + + 1 + 2 + 86570 + + + 2 + 4 + 2785 + + + + + + + idx + msg + + + 12 + + + 1 + 2 + 45856 + + + 2 + 3 + 11999 + + + 3 + 4 + 14356 + + + 4 + 5 + 14785 + + + 5 + 60 + 2357 + + + + + + + idx + rawpos + + + 12 + + + 1 + 2 + 45856 + + + 2 + 3 + 9642 + + + 3 + 4 + 8357 + + + 4 + 5 + 18428 + + + 5 + 26 + 6857 + + + 73 + 74 + 214 + + + + + + + idx + file + + + 12 + + + 1 + 2 + 45856 + + + 2 + 3 + 9642 + + + 3 + 4 + 8357 + + + 4 + 5 + 18428 + + + 5 + 26 + 6857 + + + 44 + 45 + 214 + + + + + + + idx + line + + + 12 + + + 1 + 2 + 45856 + + + 2 + 3 + 10285 + + + 3 + 4 + 10071 + + + 4 + 5 + 18214 + + + 5 + 19 + 4928 + + + + + + + idx + col + + + 12 + + + 1 + 2 + 66856 + + + 2 + 3 + 17999 + + + 3 + 9 + 4499 + + + + + + + idx + package + + + 12 + + + 1 + 2 + 45856 + + + 2 + 3 + 9642 + + + 3 + 4 + 8357 + + + 4 + 5 + 18428 + + + 5 + 26 + 6857 + + + 79 + 80 + 214 + + + + + + + + + has_ellipsis + 45900 + + + id + 45900 + + + + + + variadic + 2105580 + + + id + 2105580 + + + + + + typeparam + 331358 + + + tp + 331358 + + + name + 19381 + + + bound + 42513 + + + parent + 249456 + + + idx + 3126 + + + + + tp + name + + + 12 + + + 1 + 2 + 331358 + + + + + + + tp + bound + + + 12 + + + 1 + 2 + 331358 + + + + + + + tp + parent + + + 12 + + + 1 + 2 + 331358 + + + + + + + tp + idx + + + 12 + + + 1 + 2 + 331358 + + + + + + + name + tp + + + 12 + + + 1 + 2 + 6877 + + + 2 + 3 + 2500 + + + 3 + 4 + 2500 + + + 4 + 6 + 1250 + + + 6 + 9 + 1250 + + + 10 + 12 + 1250 + + + 27 + 34 + 1250 + + + 69 + 74 + 1250 + + + 109 + 145 + 1250 + + + + + + + name + bound + + + 12 + + + 1 + 2 + 12504 + + + 2 + 3 + 1875 + + + 3 + 4 + 2500 + + + 4 + 12 + 1250 + + + 12 + 32 + 1250 + + + + + + + name + parent + + + 12 + + + 1 + 2 + 6877 + + + 2 + 3 + 2500 + + + 3 + 4 + 2500 + + + 4 + 6 + 1250 + + + 6 + 9 + 1250 + + + 10 + 12 + 1250 + + + 27 + 34 + 1250 + + + 69 + 74 + 1250 + + + 109 + 145 + 1250 + + + + + + + name + idx + + + 12 + + + 1 + 2 + 14379 + + + 2 + 3 + 3126 + + + 3 + 4 + 1250 + + + 4 + 5 + 625 + + + + + + + bound + tp + + + 12 + + + 1 + 2 + 32510 + + + 2 + 4 + 3126 + + + 4 + 7 + 3751 + + + 15 + 271 + 3126 + + - package - line + bound + name 12 - + + + 1 + 2 + 36887 + + + 2 + 3 + 3751 + + + 4 + 18 + 1875 + + - package - col + bound + parent 12 - + + + 1 + 2 + 33761 + + + 2 + 4 + 1875 + + + 4 + 7 + 3751 + + + 15 + 260 + 3126 + + - package + bound idx 12 - + + + 1 + 2 + 38762 + + + 2 + 6 + 3751 + + - idx - id + parent + tp 12 - + + + 1 + 2 + 183185 + + + 2 + 3 + 55018 + + + 3 + 6 + 11253 + + - idx - kind + parent + name 12 - + + + 1 + 2 + 183185 + + + 2 + 3 + 55018 + + + 3 + 6 + 11253 + + - idx - msg + parent + bound 12 - + + + 1 + 2 + 187561 + + + 2 + 3 + 51892 + + + 3 + 5 + 10003 + + - idx - rawpos + parent + idx 12 - + + + 1 + 2 + 183185 + + + 2 + 3 + 55018 + + + 3 + 6 + 11253 + + idx - file + tp 12 - + + + 1 + 2 + 625 + + + 6 + 7 + 625 + + + 18 + 19 + 625 + + + 110 + 111 + 625 + + + 395 + 396 + 625 + + idx - line + name 12 - + + + 1 + 2 + 625 + + + 4 + 5 + 625 + + + 6 + 7 + 625 + + + 13 + 14 + 625 + + + 19 + 20 + 625 + + idx - col + bound 12 - + + + 1 + 2 + 625 + + + 3 + 4 + 625 + + + 9 + 10 + 625 + + + 11 + 12 + 625 + + + 57 + 58 + 625 + + idx - package + parent 12 - + + + 1 + 2 + 625 + + + 6 + 7 + 625 + + + 18 + 19 + 625 + + + 110 + 111 + 625 + + + 395 + 396 + 625 + + - - has_ellipsis - 268 - - - id - 268 - - - - diff --git a/go/ql/lib/semmle/go/AST.qll b/go/ql/lib/semmle/go/AST.qll index 92bf9dc2cb8f..64c6231d1054 100644 --- a/go/ql/lib/semmle/go/AST.qll +++ b/go/ql/lib/semmle/go/AST.qll @@ -79,6 +79,7 @@ class AstNode extends @node, Locatable { } /** Gets the innermost function definition to which this AST node belongs, if any. */ + pragma[nomagic] FuncDef getEnclosingFunction() { result = this.getParent().parentInSameFunction*() } /** diff --git a/go/ql/lib/semmle/go/Expr.qll b/go/ql/lib/semmle/go/Expr.qll index b1e1a1697843..4a4ab00f0538 100644 --- a/go/ql/lib/semmle/go/Expr.qll +++ b/go/ql/lib/semmle/go/Expr.qll @@ -2098,6 +2098,7 @@ class LabelName extends Name { * may be identified as such, so not all type expressions can be determined by * a bottom-up analysis. In such cases, `isTypeExprTopDown` below is useful. */ +pragma[nomagic] private predicate isTypeExprBottomUp(Expr e) { e instanceof TypeName or @@ -2136,6 +2137,7 @@ private predicate isTypeExprBottomUp(Expr e) { * it may be the latter and so this predicate does not consider the expression to be * a type expression. */ +pragma[nomagic] private predicate isTypeExprTopDown(Expr e) { e = any(CompositeLit cl).getTypeExpr() or diff --git a/go/ql/lib/semmle/go/Scopes.qll b/go/ql/lib/semmle/go/Scopes.qll index 7386b81868fc..191534759ea6 100644 --- a/go/ql/lib/semmle/go/Scopes.qll +++ b/go/ql/lib/semmle/go/Scopes.qll @@ -385,6 +385,11 @@ class Field extends Variable { this = base.getField(f) ) } + + /** + * Gets the tag associated with this field, or the empty string if this field has no tag. + */ + string getTag() { declaringType.hasOwnFieldWithTag(_, this.getName(), this.getType(), _, result) } } /** @@ -474,6 +479,13 @@ class Function extends ValueEntity, @functionobject { ResultVariable getAResult() { result = this.getResult(_) } } +bindingset[m] +pragma[inline_late] +private Type implementsIncludingInterfaceMethodsCand(Method m, string mname) { + result.implements(m.getReceiverType().getUnderlyingType()) and + mname = m.getName() +} + /** * A method, that is, a function with a receiver variable, or a function declared in an interface. * @@ -575,9 +587,9 @@ class Method extends Function { predicate implementsIncludingInterfaceMethods(Method m) { this = m or - exists(Type t | - this = t.getMethod(m.getName()) and - t.implements(m.getReceiverType().getUnderlyingType()) + exists(Type t, string mname | + t = implementsIncludingInterfaceMethodsCand(m, mname) and + this = t.getMethod(mname) ) } diff --git a/go/ql/lib/semmle/go/Types.qll b/go/ql/lib/semmle/go/Types.qll index f7bb6afe3d7a..4818db2f774d 100644 --- a/go/ql/lib/semmle/go/Types.qll +++ b/go/ql/lib/semmle/go/Types.qll @@ -69,6 +69,7 @@ class Type extends @type { * is contained in the method set of this type and any type restrictions are * satisfied. */ + pragma[nomagic] predicate implements(InterfaceType i) { if i = any(ComparableType comparable).getUnderlyingType() then this.implementsComparable() @@ -457,6 +458,21 @@ class StructType extends @structtype, CompositeType { ) } + /** + * Holds if this struct contains a field `name` with type `tp` and tag `tag`; + * `isEmbedded` is true if the field is embedded. + * + * Note that this predicate does not take promoted fields into account. + */ + predicate hasOwnFieldWithTag(int i, string name, Type tp, boolean isEmbedded, string tag) { + this.hasOwnField(i, name, tp, isEmbedded) and + ( + struct_tags(this, i, tag) + or + not struct_tags(this, i, _) and tag = "" + ) + } + /** * Get a field with the name `name`; `isEmbedded` is true if the field is embedded. * @@ -575,10 +591,15 @@ class StructType extends @structtype, CompositeType { override string pp() { result = "struct { " + - concat(int i, string name, Type tp | - component_types(this, i, name, tp) + concat(int i, string name, Type tp, string tagToPrint | + component_types(this, i, name, tp) and + ( + tagToPrint = " `" + any(string tag | struct_tags(this, i, tag)) + "`" + or + tagToPrint = "" and not struct_tags(this, i, _) + ) | - name + " " + tp.pp(), "; " order by i + name + " " + tp.pp() + tagToPrint, "; " order by i ) + " }" } @@ -747,6 +768,17 @@ class InterfaceType extends @interfacetype, CompositeType { exists(int i | i >= 0 | component_types(this, i, name, result)) } + /** + * Holds if this interface type has a private method `name`, + * with qualified name `qname` and type `type`. + */ + predicate hasPrivateMethodWithQualifiedName(string name, string qname, Type type) { + exists(int i | i >= 0 | + component_types(this, i, name, type) and + interface_private_method_ids(this, i, qname) + ) + } + override predicate hasMethod(string m, SignatureType t) { t = this.getMethodType(m) } /** @@ -1032,10 +1064,19 @@ class ErrorType extends Type { ErrorType() { this.implements(Builtin::error().getType().getUnderlyingType()) } } +/** + * Gets the number of types with method `name`. + */ +bindingset[name] +int numberOfTypesWithMethodName(string name) { result = count(Type t | t.hasMethod(name, _)) } + /** * Gets the name of a method in the method set of `i`. * * This is used to restrict the set of interfaces to consider in the definition of `implements`, - * so it does not matter which method name is chosen (we use the lexicographically least). + * so it does not matter which method name is chosen (we use the most unusual name the interface + * requires; this is the most discriminating and so shrinks the search space the most). */ -private string getExampleMethodName(InterfaceType i) { result = min(string m | i.hasMethod(m, _)) } +private string getExampleMethodName(InterfaceType i) { + result = min(string m | i.hasMethod(m, _) | m order by numberOfTypesWithMethodName(m)) +} diff --git a/go/ql/lib/semmle/go/controlflow/IR.qll b/go/ql/lib/semmle/go/controlflow/IR.qll index d337f526cdef..b036ddf6d0f5 100644 --- a/go/ql/lib/semmle/go/controlflow/IR.qll +++ b/go/ql/lib/semmle/go/controlflow/IR.qll @@ -501,10 +501,11 @@ module IR { override StructLit lit; /** Gets the name of the initialized field. */ + pragma[nomagic] string getFieldName() { if elt instanceof KeyValueExpr then result = elt.(KeyValueExpr).getKey().(Ident).getName() - else lit.getStructType().hasOwnField(i, result, _, _) + else pragma[only_bind_out](lit.getStructType()).hasOwnField(i, result, _, _) } /** Gets the initialized field. */ @@ -1480,7 +1481,7 @@ module IR { override predicate refersTo(ValueEntity e) { this instanceof MkLhs and - loc = e.getAReference() + pragma[only_bind_out](loc) = e.getAReference() or exists(WriteResultInstruction wr | this = MkResultWriteTarget(wr) | e = wr.getResultVariable() diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowDispatch.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowDispatch.qll index b045d6dc5522..a06edad0be2c 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowDispatch.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowDispatch.qll @@ -8,9 +8,9 @@ private import DataFlowPrivate private predicate isInterfaceCallReceiver( DataFlow::CallNode call, DataFlow::Node recv, InterfaceType tp, string m ) { - call.getReceiver() = recv and + pragma[only_bind_out](call).getReceiver() = recv and recv.getType().getUnderlyingType() = tp and - m = call.getACalleeIncludingExternals().asFunction().getName() + m = pragma[only_bind_out](call).getACalleeIncludingExternals().asFunction().getName() } /** Gets a data-flow node that may flow into the receiver value of `call`, which is an interface value. */ diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll index 6b088f44e73a..0aa517b3fdad 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll @@ -525,6 +525,7 @@ module Public { * As `getACalleeIncludingExternals`, except excluding external functions (those for which * we lack a definition, such as standard library functions). */ + pragma[nomagic] FuncDef getACallee() { result = this.getACalleeIncludingExternals().getFuncDef() } /** diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll index 9f76e7c7c95b..68ffe57f5f59 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowUtil.qll @@ -284,9 +284,11 @@ signature predicate guardChecksSig(Node g, Expr e, boolean branch); module BarrierGuard { /** Gets a node that is safely guarded by the given guard check. */ Node getABarrierNode() { - exists(ControlFlow::ConditionGuardNode guard, SsaWithFields var | result = var.getAUse() | + exists(ControlFlow::ConditionGuardNode guard, SsaWithFields var | + result = pragma[only_bind_out](var).getAUse() + | guards(_, guard, _, var) and - guard.dominates(result.getBasicBlock()) + pragma[only_bind_out](guard).dominates(result.getBasicBlock()) ) } @@ -339,6 +341,21 @@ module BarrierGuard { localFlow(pragma[only_bind_out](outp.getNode(c)), resNode) } + private predicate onlyPossibleReturnSatisfyingProperty( + FuncDecl fd, FunctionOutput outp, Node ret, DataFlow::Property p + ) { + exists(boolean b | + onlyPossibleReturnOfBool(fd, outp, ret, b) and + p.isBoolean(b) + ) + or + onlyPossibleReturnOfNonNil(fd, outp, ret) and + p.isNonNil() + or + onlyPossibleReturnOfNil(fd, outp, ret) and + p.isNil() + } + /** * Holds if whenever `p` holds of output `outp` of function `f`, this node * is known to validate the input `inp` of `f`. @@ -353,24 +370,14 @@ module BarrierGuard { ) { exists(FuncDecl fd, Node arg, Node ret | fd.getFunction() = f and - localFlow(inp.getExitNode(fd), arg) and - ret = outp.getEntryNode(fd) and + localFlow(inp.getExitNode(fd), pragma[only_bind_out](arg)) and ( // Case: a function like "if someBarrierGuard(arg) { return true } else { return false }" exists(ControlFlow::ConditionGuardNode guard | - guards(g, guard, arg) and - guard.dominates(ret.getBasicBlock()) + guards(g, pragma[only_bind_out](guard), arg) and + guard.dominates(pragma[only_bind_out](ret).getBasicBlock()) | - exists(boolean b | - onlyPossibleReturnOfBool(fd, outp, ret, b) and - p.isBoolean(b) - ) - or - onlyPossibleReturnOfNonNil(fd, outp, ret) and - p.isNonNil() - or - onlyPossibleReturnOfNil(fd, outp, ret) and - p.isNil() + onlyPossibleReturnSatisfyingProperty(fd, outp, ret, p) ) or // Case: a function like "return someBarrierGuard(arg)" diff --git a/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingUtil.qll b/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingUtil.qll index 1b521d89d98d..85f6bb0874f5 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingUtil.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/TaintTrackingUtil.qll @@ -190,6 +190,7 @@ predicate sliceStep(DataFlow::Node pred, DataFlow::Node succ) { */ abstract class FunctionModel extends Function { /** Holds if taint propagates through this function from `input` to `output`. */ + pragma[nomagic] abstract predicate hasTaintFlow(FunctionInput input, FunctionOutput output); /** Gets an input node for this model for the call `c`. */ @@ -202,8 +203,8 @@ abstract class FunctionModel extends Function { predicate taintStepForCall(DataFlow::Node pred, DataFlow::Node succ, DataFlow::CallNode c) { c = this.getACall() and exists(FunctionInput inp, FunctionOutput outp | this.hasTaintFlow(inp, outp) | - pred = inp.getNode(c) and - succ = outp.getNode(c) + pred = pragma[only_bind_out](inp).getNode(c) and + succ = pragma[only_bind_out](outp).getNode(c) ) } @@ -382,9 +383,9 @@ predicate inputIsConstantIfOutputHasProperty( ) { exists(Function f, FunctionInput inp, FunctionOutput outp, DataFlow::CallNode call | functionEnsuresInputIsConstant(f, inp, outp, p) and - call = f.getACall() and - inputNode = inp.getNode(call) and - DataFlow::localFlow(outp.getNode(call), outputNode) + call = pragma[only_bind_out](f).getACall() and + inputNode = pragma[only_bind_out](inp).getNode(call) and + DataFlow::localFlow(pragma[only_bind_out](outp).getNode(call), outputNode) ) } diff --git a/go/ql/lib/semmle/go/frameworks/Afero.qll b/go/ql/lib/semmle/go/frameworks/Afero.qll index 598036de22bc..c03bf6114334 100644 --- a/go/ql/lib/semmle/go/frameworks/Afero.qll +++ b/go/ql/lib/semmle/go/frameworks/Afero.qll @@ -65,7 +65,7 @@ module Afero { exists(Function f | f.hasQualifiedName(aferoPackage(), ["WriteReader", "SafeWriteReader", "WriteFile", "ReadFile", "ReadDir"]) and - this = f.getACall() and + this = pragma[only_bind_out](f.getACall()) and pathArg = 1 and not aferoSanitizer(this.getArgument(0)) ) @@ -73,7 +73,7 @@ module Afero { exists(Method m | m.hasQualifiedName(aferoPackage(), "Afero", ["WriteReader", "SafeWriteReader", "WriteFile", "ReadFile", "ReadDir"]) and - this = m.getACall() and + this = pragma[only_bind_out](m.getACall()) and pathArg = 0 and not aferoSanitizer(this.getReceiver()) ) diff --git a/go/ql/lib/semmle/go/frameworks/GoMicro.qll b/go/ql/lib/semmle/go/frameworks/GoMicro.qll index 55f5bded6276..116ebee030ea 100644 --- a/go/ql/lib/semmle/go/frameworks/GoMicro.qll +++ b/go/ql/lib/semmle/go/frameworks/GoMicro.qll @@ -98,6 +98,12 @@ module GoMicro { } } + bindingset[m] + pragma[inline_late] + private predicate implementsServiceType(Method m) { + m.implements(any(ServiceInterfaceType i).getNamedType().getMethod(_)) + } + /** * A service handler. */ @@ -106,7 +112,7 @@ module GoMicro { exists(DataFlow::CallNode call | call.getTarget() instanceof ServiceRegisterHandler and this = call.getArgument(1).getType().getMethod(_) and - this.implements(any(ServiceInterfaceType i).getNamedType().getMethod(_)) + implementsServiceType(this) ) } } diff --git a/go/ql/lib/semmle/go/frameworks/Twirp.qll b/go/ql/lib/semmle/go/frameworks/Twirp.qll index 3efd91eee4d7..7f338816b383 100644 --- a/go/ql/lib/semmle/go/frameworks/Twirp.qll +++ b/go/ql/lib/semmle/go/frameworks/Twirp.qll @@ -118,13 +118,19 @@ module Twirp { override string getKind() { result = "URL" } } + bindingset[m] + pragma[inline_late] + private predicate implementsServiceType(Method m) { + m.implements(any(ServiceInterfaceType i).getNamedType().getMethod(_)) + } + /** A service handler. */ class ServiceHandler extends Method { ServiceHandler() { exists(DataFlow::CallNode call | call.getTarget() instanceof ServerConstructor and this = call.getArgument(0).getType().getMethod(_) and - this.implements(any(ServiceInterfaceType i).getNamedType().getMethod(_)) + implementsServiceType(this) ) } } diff --git a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll index 304bc004e038..870edeee9621 100644 --- a/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll +++ b/go/ql/lib/semmle/go/security/OpenUrlRedirectCustomizations.qll @@ -75,6 +75,13 @@ module OpenUrlRedirect { } } + bindingset[var, w] + pragma[inline_late] + private predicate useIsDominated(SsaWithFields var, Write w, DataFlow::ReadNode sanitizedRead) { + w.dominatesNode(sanitizedRead.asInstruction()) and + sanitizedRead = var.getAUse() + } + /** * An access to a variable that is preceded by an assignment to its `Path` field. * @@ -83,13 +90,10 @@ module OpenUrlRedirect { */ class PathAssignmentBarrier extends Barrier, Read { PathAssignmentBarrier() { - exists(Write w, Field f, SsaWithFields var | - f.getName() = "Path" and + exists(Write w, SsaWithFields var | hasHostnameSanitizingSubstring(w.getRhs()) and - this = var.getAUse() - | - w.writesField(var.getAUse(), f, _) and - w.dominatesNode(insn) + w.writesField(var.getAUse(), any(Field f | f.getName() = "Path"), _) and + useIsDominated(var, w, this) ) } } diff --git a/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/go.dbscheme b/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/go.dbscheme new file mode 100644 index 000000000000..4bd57e093275 --- /dev/null +++ b/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/go.dbscheme @@ -0,0 +1,552 @@ +/** Auto-generated dbscheme; do not edit. Run `make gen` in directory `go/` to regenerate. */ + + +/** Duplicate code **/ + +duplicateCode( + unique int id : @duplication, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +similarCode( + unique int id : @similarity, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +@duplication_or_similarity = @duplication | @similarity; + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref); + +/** External data **/ + +externalData( + int id : @externalDataElement, + varchar(900) path : string ref, + int column: int ref, + varchar(900) value : string ref +); + +snapshotDate(unique date snapshotDate : date ref); + +sourceLocationPrefix(varchar(900) prefix : string ref); + + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +compilations(unique int id: @compilation, string cwd: string ref); + +#keyset[id, num] +compilation_args(int id: @compilation ref, int num: int ref, string arg: string ref); + +#keyset[id, num, kind] +compilation_time(int id: @compilation ref, int num: int ref, int kind: int ref, float secs: float ref); + +diagnostic_for(unique int diagnostic: @diagnostic ref, int compilation: @compilation ref, int file_number: int ref, int file_number_diagnostic_number: int ref); + +compilation_finished(unique int id: @compilation ref, float cpu_seconds: float ref, float elapsed_seconds: float ref); + +#keyset[id, num] +compilation_compiling_files(int id: @compilation ref, int num: int ref, int file: @file ref); + +diagnostics(unique int id: @diagnostic, int severity: int ref, string error_tag: string ref, string error_message: string ref, + string full_error_message: string ref, int location: @location ref); + +locations_default(unique int id: @location_default, int file: @file ref, int beginLine: int ref, int beginColumn: int ref, + int endLine: int ref, int endColumn: int ref); + +numlines(int element_id: @sourceline ref, int num_lines: int ref, int num_code: int ref, int num_comment: int ref); + +files(unique int id: @file, string name: string ref); + +folders(unique int id: @folder, string name: string ref); + +containerparent(int parent: @container ref, unique int child: @container ref); + +has_location(unique int locatable: @locatable ref, int location: @location ref); + +#keyset[parent, idx] +comment_groups(unique int id: @comment_group, int parent: @file ref, int idx: int ref); + +comments(unique int id: @comment, int kind: int ref, int parent: @comment_group ref, int idx: int ref, string text: string ref); + +doc_comments(unique int node: @documentable ref, int comment: @comment_group ref); + +#keyset[parent, idx] +exprs(unique int id: @expr, int kind: int ref, int parent: @exprparent ref, int idx: int ref); + +literals(unique int expr: @expr ref, string value: string ref, string raw: string ref); + +constvalues(unique int expr: @expr ref, string value: string ref, string exact: string ref); + +fields(unique int id: @field, int parent: @fieldparent ref, int idx: int ref); + +typeparamdecls(unique int id: @typeparamdecl, int parent: @typeparamdeclparent ref, int idx: int ref); + +#keyset[parent, idx] +stmts(unique int id: @stmt, int kind: int ref, int parent: @stmtparent ref, int idx: int ref); + +#keyset[parent, idx] +decls(unique int id: @decl, int kind: int ref, int parent: @declparent ref, int idx: int ref); + +#keyset[parent, idx] +specs(unique int id: @spec, int kind: int ref, int parent: @gendecl ref, int idx: int ref); + +scopes(unique int id: @scope, int kind: int ref); + +scopenesting(unique int inner: @scope ref, int outer: @scope ref); + +scopenodes(unique int node: @scopenode ref, int scope: @localscope ref); + +objects(unique int id: @object, int kind: int ref, string name: string ref); + +objectscopes(unique int object: @object ref, int scope: @scope ref); + +objecttypes(unique int object: @object ref, int tp: @type ref); + +methodreceivers(unique int method: @object ref, int receiver: @object ref); + +fieldstructs(unique int field: @object ref, int struct: @structtype ref); + +methodhosts(int method: @object ref, int host: @namedtype ref); + +defs(int ident: @ident ref, int object: @object ref); + +uses(int ident: @ident ref, int object: @object ref); + +types(unique int id: @type, int kind: int ref); + +type_of(unique int expr: @expr ref, int tp: @type ref); + +typename(unique int tp: @type ref, string name: string ref); + +key_type(unique int map: @maptype ref, int tp: @type ref); + +element_type(unique int container: @containertype ref, int tp: @type ref); + +base_type(unique int ptr: @pointertype ref, int tp: @type ref); + +underlying_type(unique int named: @namedtype ref, int tp: @type ref); + +#keyset[parent, index] +component_types(int parent: @compositetype ref, int index: int ref, string name: string ref, int tp: @type ref); + +#keyset[parent, index] +struct_tags(int parent: @structtype ref, int index: int ref, string tag: string ref); + +#keyset[interface, index] +interface_private_method_ids(int interface: @interfacetype ref, int index: int ref, string id: string ref); + +array_length(unique int tp: @arraytype ref, string len: string ref); + +type_objects(unique int tp: @type ref, int object: @object ref); + +packages(unique int id: @package, string name: string ref, string path: string ref, int scope: @packagescope ref); + +#keyset[parent, idx] +modexprs(unique int id: @modexpr, int kind: int ref, int parent: @modexprparent ref, int idx: int ref); + +#keyset[parent, idx] +modtokens(string token: string ref, int parent: @modexpr ref, int idx: int ref); + +#keyset[package, idx] +errors(unique int id: @error, int kind: int ref, string msg: string ref, string rawpos: string ref, + string file: string ref, int line: int ref, int col: int ref, int package: @package ref, int idx: int ref); + +has_ellipsis(int id: @callorconversionexpr ref); + +variadic(int id: @signaturetype ref); + +#keyset[parent, idx] +typeparam(unique int tp: @typeparamtype ref, string name: string ref, int bound: @compositetype ref, + int parent: @typeparamparentobject ref, int idx: int ref); + +@container = @file | @folder; + +@locatable = @xmllocatable | @node | @localscope; + +@node = @documentable | @exprparent | @modexprparent | @fieldparent | @stmtparent | @declparent | @typeparamdeclparent + | @scopenode | @comment_group | @comment; + +@documentable = @file | @field | @typeparamdecl | @spec | @gendecl | @funcdecl | @modexpr; + +@exprparent = @funcdef | @file | @expr | @field | @stmt | @decl | @typeparamdecl | @spec; + +@modexprparent = @file | @modexpr; + +@fieldparent = @decl | @structtypeexpr | @functypeexpr | @interfacetypeexpr; + +@stmtparent = @funcdef | @stmt | @decl; + +@declparent = @file | @declstmt; + +@typeparamdeclparent = @funcdecl | @typespec; + +@funcdef = @funclit | @funcdecl; + +@scopenode = @file | @functypeexpr | @blockstmt | @ifstmt | @caseclause | @switchstmt | @commclause | @loopstmt; + +@location = @location_default; + +@sourceline = @locatable; + +case @comment.kind of + 0 = @slashslashcomment +| 1 = @slashstarcomment; + +case @expr.kind of + 0 = @badexpr +| 1 = @ident +| 2 = @ellipsis +| 3 = @intlit +| 4 = @floatlit +| 5 = @imaglit +| 6 = @charlit +| 7 = @stringlit +| 8 = @funclit +| 9 = @compositelit +| 10 = @parenexpr +| 11 = @selectorexpr +| 12 = @indexexpr +| 13 = @genericfunctioninstantiationexpr +| 14 = @generictypeinstantiationexpr +| 15 = @sliceexpr +| 16 = @typeassertexpr +| 17 = @callorconversionexpr +| 18 = @starexpr +| 19 = @keyvalueexpr +| 20 = @arraytypeexpr +| 21 = @structtypeexpr +| 22 = @functypeexpr +| 23 = @interfacetypeexpr +| 24 = @maptypeexpr +| 25 = @typesetliteralexpr +| 26 = @plusexpr +| 27 = @minusexpr +| 28 = @notexpr +| 29 = @complementexpr +| 30 = @derefexpr +| 31 = @addressexpr +| 32 = @arrowexpr +| 33 = @lorexpr +| 34 = @landexpr +| 35 = @eqlexpr +| 36 = @neqexpr +| 37 = @lssexpr +| 38 = @leqexpr +| 39 = @gtrexpr +| 40 = @geqexpr +| 41 = @addexpr +| 42 = @subexpr +| 43 = @orexpr +| 44 = @xorexpr +| 45 = @mulexpr +| 46 = @quoexpr +| 47 = @remexpr +| 48 = @shlexpr +| 49 = @shrexpr +| 50 = @andexpr +| 51 = @andnotexpr +| 52 = @sendchantypeexpr +| 53 = @recvchantypeexpr +| 54 = @sendrcvchantypeexpr; + +@basiclit = @intlit | @floatlit | @imaglit | @charlit | @stringlit; + +@operatorexpr = @logicalexpr | @arithmeticexpr | @bitwiseexpr | @unaryexpr | @binaryexpr; + +@logicalexpr = @logicalunaryexpr | @logicalbinaryexpr; + +@arithmeticexpr = @arithmeticunaryexpr | @arithmeticbinaryexpr; + +@bitwiseexpr = @bitwiseunaryexpr | @bitwisebinaryexpr; + +@unaryexpr = @logicalunaryexpr | @bitwiseunaryexpr | @arithmeticunaryexpr | @derefexpr | @addressexpr | @arrowexpr; + +@logicalunaryexpr = @notexpr; + +@bitwiseunaryexpr = @complementexpr; + +@arithmeticunaryexpr = @plusexpr | @minusexpr; + +@binaryexpr = @logicalbinaryexpr | @bitwisebinaryexpr | @arithmeticbinaryexpr | @comparison; + +@logicalbinaryexpr = @lorexpr | @landexpr; + +@bitwisebinaryexpr = @shiftexpr | @orexpr | @xorexpr | @andexpr | @andnotexpr; + +@arithmeticbinaryexpr = @addexpr | @subexpr | @mulexpr | @quoexpr | @remexpr; + +@shiftexpr = @shlexpr | @shrexpr; + +@comparison = @equalitytest | @relationalcomparison; + +@equalitytest = @eqlexpr | @neqexpr; + +@relationalcomparison = @lssexpr | @leqexpr | @gtrexpr | @geqexpr; + +@chantypeexpr = @sendchantypeexpr | @recvchantypeexpr | @sendrcvchantypeexpr; + +case @stmt.kind of + 0 = @badstmt +| 1 = @declstmt +| 2 = @emptystmt +| 3 = @labeledstmt +| 4 = @exprstmt +| 5 = @sendstmt +| 6 = @incstmt +| 7 = @decstmt +| 8 = @gostmt +| 9 = @deferstmt +| 10 = @returnstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @gotostmt +| 14 = @fallthroughstmt +| 15 = @blockstmt +| 16 = @ifstmt +| 17 = @caseclause +| 18 = @exprswitchstmt +| 19 = @typeswitchstmt +| 20 = @commclause +| 21 = @selectstmt +| 22 = @forstmt +| 23 = @rangestmt +| 24 = @assignstmt +| 25 = @definestmt +| 26 = @addassignstmt +| 27 = @subassignstmt +| 28 = @mulassignstmt +| 29 = @quoassignstmt +| 30 = @remassignstmt +| 31 = @andassignstmt +| 32 = @orassignstmt +| 33 = @xorassignstmt +| 34 = @shlassignstmt +| 35 = @shrassignstmt +| 36 = @andnotassignstmt; + +@incdecstmt = @incstmt | @decstmt; + +@assignment = @simpleassignstmt | @compoundassignstmt; + +@simpleassignstmt = @assignstmt | @definestmt; + +@compoundassignstmt = @addassignstmt | @subassignstmt | @mulassignstmt | @quoassignstmt | @remassignstmt + | @andassignstmt | @orassignstmt | @xorassignstmt | @shlassignstmt | @shrassignstmt | @andnotassignstmt; + +@branchstmt = @breakstmt | @continuestmt | @gotostmt | @fallthroughstmt; + +@switchstmt = @exprswitchstmt | @typeswitchstmt; + +@loopstmt = @forstmt | @rangestmt; + +case @decl.kind of + 0 = @baddecl +| 1 = @importdecl +| 2 = @constdecl +| 3 = @typedecl +| 4 = @vardecl +| 5 = @funcdecl; + +@gendecl = @importdecl | @constdecl | @typedecl | @vardecl; + +case @spec.kind of + 0 = @importspec +| 1 = @valuespec +| 2 = @typedefspec +| 3 = @aliasspec; + +@typespec = @typedefspec | @aliasspec; + +case @object.kind of + 0 = @pkgobject +| 1 = @decltypeobject +| 2 = @builtintypeobject +| 3 = @declconstobject +| 4 = @builtinconstobject +| 5 = @declvarobject +| 6 = @declfunctionobject +| 7 = @builtinfunctionobject +| 8 = @labelobject; + +@typeparamparentobject = @decltypeobject | @declfunctionobject; + +@declobject = @decltypeobject | @declconstobject | @declvarobject | @declfunctionobject; + +@builtinobject = @builtintypeobject | @builtinconstobject | @builtinfunctionobject; + +@typeobject = @decltypeobject | @builtintypeobject; + +@valueobject = @constobject | @varobject | @functionobject; + +@constobject = @declconstobject | @builtinconstobject; + +@varobject = @declvarobject; + +@functionobject = @declfunctionobject | @builtinfunctionobject; + +case @scope.kind of + 0 = @universescope +| 1 = @packagescope +| 2 = @localscope; + +case @type.kind of + 0 = @invalidtype +| 1 = @boolexprtype +| 2 = @inttype +| 3 = @int8type +| 4 = @int16type +| 5 = @int32type +| 6 = @int64type +| 7 = @uinttype +| 8 = @uint8type +| 9 = @uint16type +| 10 = @uint32type +| 11 = @uint64type +| 12 = @uintptrtype +| 13 = @float32type +| 14 = @float64type +| 15 = @complex64type +| 16 = @complex128type +| 17 = @stringexprtype +| 18 = @unsafepointertype +| 19 = @boolliteraltype +| 20 = @intliteraltype +| 21 = @runeliteraltype +| 22 = @floatliteraltype +| 23 = @complexliteraltype +| 24 = @stringliteraltype +| 25 = @nilliteraltype +| 26 = @typeparamtype +| 27 = @arraytype +| 28 = @slicetype +| 29 = @structtype +| 30 = @pointertype +| 31 = @interfacetype +| 32 = @tupletype +| 33 = @signaturetype +| 34 = @maptype +| 35 = @sendchantype +| 36 = @recvchantype +| 37 = @sendrcvchantype +| 38 = @namedtype +| 39 = @typesetliteraltype; + +@basictype = @booltype | @numerictype | @stringtype | @literaltype | @invalidtype | @unsafepointertype; + +@booltype = @boolexprtype | @boolliteraltype; + +@numerictype = @integertype | @floattype | @complextype; + +@integertype = @signedintegertype | @unsignedintegertype; + +@signedintegertype = @inttype | @int8type | @int16type | @int32type | @int64type | @intliteraltype | @runeliteraltype; + +@unsignedintegertype = @uinttype | @uint8type | @uint16type | @uint32type | @uint64type | @uintptrtype; + +@floattype = @float32type | @float64type | @floatliteraltype; + +@complextype = @complex64type | @complex128type | @complexliteraltype; + +@stringtype = @stringexprtype | @stringliteraltype; + +@literaltype = @boolliteraltype | @intliteraltype | @runeliteraltype | @floatliteraltype | @complexliteraltype + | @stringliteraltype | @nilliteraltype; + +@compositetype = @typeparamtype | @containertype | @structtype | @pointertype | @interfacetype | @tupletype + | @signaturetype | @namedtype | @typesetliteraltype; + +@containertype = @arraytype | @slicetype | @maptype | @chantype; + +@chantype = @sendchantype | @recvchantype | @sendrcvchantype; + +case @modexpr.kind of + 0 = @modcommentblock +| 1 = @modline +| 2 = @modlineblock +| 3 = @modlparen +| 4 = @modrparen; + +case @error.kind of + 0 = @unknownerror +| 1 = @listerror +| 2 = @parseerror +| 3 = @typeerror; + diff --git a/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/old.dbscheme b/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/old.dbscheme new file mode 100644 index 000000000000..a58b81b1b4c4 --- /dev/null +++ b/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/old.dbscheme @@ -0,0 +1,546 @@ +/** Auto-generated dbscheme; do not edit. */ + + +/** Duplicate code **/ + +duplicateCode( + unique int id : @duplication, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +similarCode( + unique int id : @similarity, + varchar(900) relativePath : string ref, + int equivClass : int ref); + +@duplication_or_similarity = @duplication | @similarity; + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref); + +/** External data **/ + +externalData( + int id : @externalDataElement, + varchar(900) path : string ref, + int column: int ref, + varchar(900) value : string ref +); + +snapshotDate(unique date snapshotDate : date ref); + +sourceLocationPrefix(varchar(900) prefix : string ref); + + +/* + * XML Files + */ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +compilations(unique int id: @compilation, string cwd: string ref); + +#keyset[id, num] +compilation_args(int id: @compilation ref, int num: int ref, string arg: string ref); + +#keyset[id, num, kind] +compilation_time(int id: @compilation ref, int num: int ref, int kind: int ref, float secs: float ref); + +diagnostic_for(unique int diagnostic: @diagnostic ref, int compilation: @compilation ref, int file_number: int ref, int file_number_diagnostic_number: int ref); + +compilation_finished(unique int id: @compilation ref, float cpu_seconds: float ref, float elapsed_seconds: float ref); + +#keyset[id, num] +compilation_compiling_files(int id: @compilation ref, int num: int ref, int file: @file ref); + +diagnostics(unique int id: @diagnostic, int severity: int ref, string error_tag: string ref, string error_message: string ref, + string full_error_message: string ref, int location: @location ref); + +locations_default(unique int id: @location_default, int file: @file ref, int beginLine: int ref, int beginColumn: int ref, + int endLine: int ref, int endColumn: int ref); + +numlines(int element_id: @sourceline ref, int num_lines: int ref, int num_code: int ref, int num_comment: int ref); + +files(unique int id: @file, string name: string ref); + +folders(unique int id: @folder, string name: string ref); + +containerparent(int parent: @container ref, unique int child: @container ref); + +has_location(unique int locatable: @locatable ref, int location: @location ref); + +#keyset[parent, idx] +comment_groups(unique int id: @comment_group, int parent: @file ref, int idx: int ref); + +comments(unique int id: @comment, int kind: int ref, int parent: @comment_group ref, int idx: int ref, string text: string ref); + +doc_comments(unique int node: @documentable ref, int comment: @comment_group ref); + +#keyset[parent, idx] +exprs(unique int id: @expr, int kind: int ref, int parent: @exprparent ref, int idx: int ref); + +literals(unique int expr: @expr ref, string value: string ref, string raw: string ref); + +constvalues(unique int expr: @expr ref, string value: string ref, string exact: string ref); + +fields(unique int id: @field, int parent: @fieldparent ref, int idx: int ref); + +typeparamdecls(unique int id: @typeparamdecl, int parent: @typeparamdeclparent ref, int idx: int ref); + +#keyset[parent, idx] +stmts(unique int id: @stmt, int kind: int ref, int parent: @stmtparent ref, int idx: int ref); + +#keyset[parent, idx] +decls(unique int id: @decl, int kind: int ref, int parent: @declparent ref, int idx: int ref); + +#keyset[parent, idx] +specs(unique int id: @spec, int kind: int ref, int parent: @gendecl ref, int idx: int ref); + +scopes(unique int id: @scope, int kind: int ref); + +scopenesting(unique int inner: @scope ref, int outer: @scope ref); + +scopenodes(unique int node: @scopenode ref, int scope: @localscope ref); + +objects(unique int id: @object, int kind: int ref, string name: string ref); + +objectscopes(unique int object: @object ref, int scope: @scope ref); + +objecttypes(unique int object: @object ref, int tp: @type ref); + +methodreceivers(unique int method: @object ref, int receiver: @object ref); + +fieldstructs(unique int field: @object ref, int struct: @structtype ref); + +methodhosts(int method: @object ref, int host: @namedtype ref); + +defs(int ident: @ident ref, int object: @object ref); + +uses(int ident: @ident ref, int object: @object ref); + +types(unique int id: @type, int kind: int ref); + +type_of(unique int expr: @expr ref, int tp: @type ref); + +typename(unique int tp: @type ref, string name: string ref); + +key_type(unique int map: @maptype ref, int tp: @type ref); + +element_type(unique int container: @containertype ref, int tp: @type ref); + +base_type(unique int ptr: @pointertype ref, int tp: @type ref); + +underlying_type(unique int named: @namedtype ref, int tp: @type ref); + +#keyset[parent, index] +component_types(int parent: @compositetype ref, int index: int ref, string name: string ref, int tp: @type ref); + +array_length(unique int tp: @arraytype ref, string len: string ref); + +type_objects(unique int tp: @type ref, int object: @object ref); + +packages(unique int id: @package, string name: string ref, string path: string ref, int scope: @packagescope ref); + +#keyset[parent, idx] +modexprs(unique int id: @modexpr, int kind: int ref, int parent: @modexprparent ref, int idx: int ref); + +#keyset[parent, idx] +modtokens(string token: string ref, int parent: @modexpr ref, int idx: int ref); + +#keyset[package, idx] +errors(unique int id: @error, int kind: int ref, string msg: string ref, string rawpos: string ref, + string file: string ref, int line: int ref, int col: int ref, int package: @package ref, int idx: int ref); + +has_ellipsis(int id: @callorconversionexpr ref); + +variadic(int id: @signaturetype ref); + +#keyset[parent, idx] +typeparam(unique int tp: @typeparamtype ref, string name: string ref, int bound: @compositetype ref, + int parent: @typeparamparentobject ref, int idx: int ref); + +@container = @file | @folder; + +@locatable = @xmllocatable | @node | @localscope; + +@node = @documentable | @exprparent | @modexprparent | @fieldparent | @stmtparent | @declparent | @typeparamdeclparent + | @scopenode | @comment_group | @comment; + +@documentable = @file | @field | @typeparamdecl | @spec | @gendecl | @funcdecl | @modexpr; + +@exprparent = @funcdef | @file | @expr | @field | @stmt | @decl | @typeparamdecl | @spec; + +@modexprparent = @file | @modexpr; + +@fieldparent = @decl | @structtypeexpr | @functypeexpr | @interfacetypeexpr; + +@stmtparent = @funcdef | @stmt | @decl; + +@declparent = @file | @declstmt; + +@typeparamdeclparent = @funcdecl | @typespec; + +@funcdef = @funclit | @funcdecl; + +@scopenode = @file | @functypeexpr | @blockstmt | @ifstmt | @caseclause | @switchstmt | @commclause | @loopstmt; + +@location = @location_default; + +@sourceline = @locatable; + +case @comment.kind of + 0 = @slashslashcomment +| 1 = @slashstarcomment; + +case @expr.kind of + 0 = @badexpr +| 1 = @ident +| 2 = @ellipsis +| 3 = @intlit +| 4 = @floatlit +| 5 = @imaglit +| 6 = @charlit +| 7 = @stringlit +| 8 = @funclit +| 9 = @compositelit +| 10 = @parenexpr +| 11 = @selectorexpr +| 12 = @indexexpr +| 13 = @genericfunctioninstantiationexpr +| 14 = @generictypeinstantiationexpr +| 15 = @sliceexpr +| 16 = @typeassertexpr +| 17 = @callorconversionexpr +| 18 = @starexpr +| 19 = @keyvalueexpr +| 20 = @arraytypeexpr +| 21 = @structtypeexpr +| 22 = @functypeexpr +| 23 = @interfacetypeexpr +| 24 = @maptypeexpr +| 25 = @typesetliteralexpr +| 26 = @plusexpr +| 27 = @minusexpr +| 28 = @notexpr +| 29 = @complementexpr +| 30 = @derefexpr +| 31 = @addressexpr +| 32 = @arrowexpr +| 33 = @lorexpr +| 34 = @landexpr +| 35 = @eqlexpr +| 36 = @neqexpr +| 37 = @lssexpr +| 38 = @leqexpr +| 39 = @gtrexpr +| 40 = @geqexpr +| 41 = @addexpr +| 42 = @subexpr +| 43 = @orexpr +| 44 = @xorexpr +| 45 = @mulexpr +| 46 = @quoexpr +| 47 = @remexpr +| 48 = @shlexpr +| 49 = @shrexpr +| 50 = @andexpr +| 51 = @andnotexpr +| 52 = @sendchantypeexpr +| 53 = @recvchantypeexpr +| 54 = @sendrcvchantypeexpr; + +@basiclit = @intlit | @floatlit | @imaglit | @charlit | @stringlit; + +@operatorexpr = @logicalexpr | @arithmeticexpr | @bitwiseexpr | @unaryexpr | @binaryexpr; + +@logicalexpr = @logicalunaryexpr | @logicalbinaryexpr; + +@arithmeticexpr = @arithmeticunaryexpr | @arithmeticbinaryexpr; + +@bitwiseexpr = @bitwiseunaryexpr | @bitwisebinaryexpr; + +@unaryexpr = @logicalunaryexpr | @bitwiseunaryexpr | @arithmeticunaryexpr | @derefexpr | @addressexpr | @arrowexpr; + +@logicalunaryexpr = @notexpr; + +@bitwiseunaryexpr = @complementexpr; + +@arithmeticunaryexpr = @plusexpr | @minusexpr; + +@binaryexpr = @logicalbinaryexpr | @bitwisebinaryexpr | @arithmeticbinaryexpr | @comparison; + +@logicalbinaryexpr = @lorexpr | @landexpr; + +@bitwisebinaryexpr = @shiftexpr | @orexpr | @xorexpr | @andexpr | @andnotexpr; + +@arithmeticbinaryexpr = @addexpr | @subexpr | @mulexpr | @quoexpr | @remexpr; + +@shiftexpr = @shlexpr | @shrexpr; + +@comparison = @equalitytest | @relationalcomparison; + +@equalitytest = @eqlexpr | @neqexpr; + +@relationalcomparison = @lssexpr | @leqexpr | @gtrexpr | @geqexpr; + +@chantypeexpr = @sendchantypeexpr | @recvchantypeexpr | @sendrcvchantypeexpr; + +case @stmt.kind of + 0 = @badstmt +| 1 = @declstmt +| 2 = @emptystmt +| 3 = @labeledstmt +| 4 = @exprstmt +| 5 = @sendstmt +| 6 = @incstmt +| 7 = @decstmt +| 8 = @gostmt +| 9 = @deferstmt +| 10 = @returnstmt +| 11 = @breakstmt +| 12 = @continuestmt +| 13 = @gotostmt +| 14 = @fallthroughstmt +| 15 = @blockstmt +| 16 = @ifstmt +| 17 = @caseclause +| 18 = @exprswitchstmt +| 19 = @typeswitchstmt +| 20 = @commclause +| 21 = @selectstmt +| 22 = @forstmt +| 23 = @rangestmt +| 24 = @assignstmt +| 25 = @definestmt +| 26 = @addassignstmt +| 27 = @subassignstmt +| 28 = @mulassignstmt +| 29 = @quoassignstmt +| 30 = @remassignstmt +| 31 = @andassignstmt +| 32 = @orassignstmt +| 33 = @xorassignstmt +| 34 = @shlassignstmt +| 35 = @shrassignstmt +| 36 = @andnotassignstmt; + +@incdecstmt = @incstmt | @decstmt; + +@assignment = @simpleassignstmt | @compoundassignstmt; + +@simpleassignstmt = @assignstmt | @definestmt; + +@compoundassignstmt = @addassignstmt | @subassignstmt | @mulassignstmt | @quoassignstmt | @remassignstmt + | @andassignstmt | @orassignstmt | @xorassignstmt | @shlassignstmt | @shrassignstmt | @andnotassignstmt; + +@branchstmt = @breakstmt | @continuestmt | @gotostmt | @fallthroughstmt; + +@switchstmt = @exprswitchstmt | @typeswitchstmt; + +@loopstmt = @forstmt | @rangestmt; + +case @decl.kind of + 0 = @baddecl +| 1 = @importdecl +| 2 = @constdecl +| 3 = @typedecl +| 4 = @vardecl +| 5 = @funcdecl; + +@gendecl = @importdecl | @constdecl | @typedecl | @vardecl; + +case @spec.kind of + 0 = @importspec +| 1 = @valuespec +| 2 = @typedefspec +| 3 = @aliasspec; + +@typespec = @typedefspec | @aliasspec; + +case @object.kind of + 0 = @pkgobject +| 1 = @decltypeobject +| 2 = @builtintypeobject +| 3 = @declconstobject +| 4 = @builtinconstobject +| 5 = @declvarobject +| 6 = @declfunctionobject +| 7 = @builtinfunctionobject +| 8 = @labelobject; + +@typeparamparentobject = @decltypeobject | @declfunctionobject; + +@declobject = @decltypeobject | @declconstobject | @declvarobject | @declfunctionobject; + +@builtinobject = @builtintypeobject | @builtinconstobject | @builtinfunctionobject; + +@typeobject = @decltypeobject | @builtintypeobject; + +@valueobject = @constobject | @varobject | @functionobject; + +@constobject = @declconstobject | @builtinconstobject; + +@varobject = @declvarobject; + +@functionobject = @declfunctionobject | @builtinfunctionobject; + +case @scope.kind of + 0 = @universescope +| 1 = @packagescope +| 2 = @localscope; + +case @type.kind of + 0 = @invalidtype +| 1 = @boolexprtype +| 2 = @inttype +| 3 = @int8type +| 4 = @int16type +| 5 = @int32type +| 6 = @int64type +| 7 = @uinttype +| 8 = @uint8type +| 9 = @uint16type +| 10 = @uint32type +| 11 = @uint64type +| 12 = @uintptrtype +| 13 = @float32type +| 14 = @float64type +| 15 = @complex64type +| 16 = @complex128type +| 17 = @stringexprtype +| 18 = @unsafepointertype +| 19 = @boolliteraltype +| 20 = @intliteraltype +| 21 = @runeliteraltype +| 22 = @floatliteraltype +| 23 = @complexliteraltype +| 24 = @stringliteraltype +| 25 = @nilliteraltype +| 26 = @typeparamtype +| 27 = @arraytype +| 28 = @slicetype +| 29 = @structtype +| 30 = @pointertype +| 31 = @interfacetype +| 32 = @tupletype +| 33 = @signaturetype +| 34 = @maptype +| 35 = @sendchantype +| 36 = @recvchantype +| 37 = @sendrcvchantype +| 38 = @namedtype +| 39 = @typesetliteraltype; + +@basictype = @booltype | @numerictype | @stringtype | @literaltype | @invalidtype | @unsafepointertype; + +@booltype = @boolexprtype | @boolliteraltype; + +@numerictype = @integertype | @floattype | @complextype; + +@integertype = @signedintegertype | @unsignedintegertype; + +@signedintegertype = @inttype | @int8type | @int16type | @int32type | @int64type | @intliteraltype | @runeliteraltype; + +@unsignedintegertype = @uinttype | @uint8type | @uint16type | @uint32type | @uint64type | @uintptrtype; + +@floattype = @float32type | @float64type | @floatliteraltype; + +@complextype = @complex64type | @complex128type | @complexliteraltype; + +@stringtype = @stringexprtype | @stringliteraltype; + +@literaltype = @boolliteraltype | @intliteraltype | @runeliteraltype | @floatliteraltype | @complexliteraltype + | @stringliteraltype | @nilliteraltype; + +@compositetype = @typeparamtype | @containertype | @structtype | @pointertype | @interfacetype | @tupletype + | @signaturetype | @namedtype | @typesetliteraltype; + +@containertype = @arraytype | @slicetype | @maptype | @chantype; + +@chantype = @sendchantype | @recvchantype | @sendrcvchantype; + +case @modexpr.kind of + 0 = @modcommentblock +| 1 = @modline +| 2 = @modlineblock +| 3 = @modlparen +| 4 = @modrparen; + +case @error.kind of + 0 = @unknownerror +| 1 = @listerror +| 2 = @parseerror +| 3 = @typeerror; + diff --git a/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/upgrade.properties b/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/upgrade.properties new file mode 100644 index 000000000000..68a09f8148c7 --- /dev/null +++ b/go/ql/lib/upgrades/a58b81b1b4c4cccc8ca11731c1db86622f33af57/upgrade.properties @@ -0,0 +1,2 @@ +description: Add tables for struct tags and interface method IDs +compatibility: full diff --git a/go/ql/src/Security/CWE-798/HardcodedCredentials.ql b/go/ql/src/Security/CWE-798/HardcodedCredentials.ql index 6dd422413f7f..37ebbad8f68b 100644 --- a/go/ql/src/Security/CWE-798/HardcodedCredentials.ql +++ b/go/ql/src/Security/CWE-798/HardcodedCredentials.ql @@ -23,8 +23,8 @@ import semmle.go.security.SensitiveActions */ predicate isSensitive(DataFlow::Node sink, SensitiveExpr::Classification type) { exists(Write write, string name | - write.getRhs() = sink and - name = write.getLhs().getName() and + pragma[only_bind_out](write).getRhs() = sink and + name = pragma[only_bind_out](write).getLhs().getName() and // allow obvious test password variables not name.regexpMatch(HeuristicNames::notSensitive()) | diff --git a/go/ql/test/library-tests/semmle/go/Types/Field_getPackage.expected b/go/ql/test/library-tests/semmle/go/Types/Field_getPackage.expected index 758199c63523..6fd88c35259e 100644 --- a/go/ql/test/library-tests/semmle/go/Types/Field_getPackage.expected +++ b/go/ql/test/library-tests/semmle/go/Types/Field_getPackage.expected @@ -46,3 +46,7 @@ | pkg1/tst.go:30:2:30:5 | flag | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | | pkg2/tst.go:4:2:4:2 | g | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | | pkg2/tst.go:8:2:8:2 | g | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | +| struct_tags.go:4:2:4:7 | field1 | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | +| struct_tags.go:5:2:5:7 | field2 | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | +| struct_tags.go:9:2:9:7 | field1 | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | +| struct_tags.go:10:2:10:7 | field2 | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | diff --git a/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName2.expected b/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName2.expected index 4c69f36880be..910d9a0dd5ff 100644 --- a/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName2.expected +++ b/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName2.expected @@ -64,3 +64,7 @@ | pkg2/tst.go:4:2:4:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.T | g | | pkg2/tst.go:8:2:8:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.G | g | | pkg2/tst.go:8:2:8:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.T | g | +| struct_tags.go:4:2:4:7 | field1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S1 | field1 | +| struct_tags.go:5:2:5:7 | field2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S1 | field2 | +| struct_tags.go:9:2:9:7 | field1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S2 | field1 | +| struct_tags.go:10:2:10:7 | field2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S2 | field2 | diff --git a/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName3.expected b/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName3.expected index 4fe8aee19f4c..1b8e88be66ff 100644 --- a/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName3.expected +++ b/go/ql/test/library-tests/semmle/go/Types/Field_hasQualifiedName3.expected @@ -64,3 +64,7 @@ | pkg2/tst.go:4:2:4:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | T | g | | pkg2/tst.go:8:2:8:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | G | g | | pkg2/tst.go:8:2:8:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | T | g | +| struct_tags.go:4:2:4:7 | field1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | S1 | field1 | +| struct_tags.go:5:2:5:7 | field2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | S1 | field2 | +| struct_tags.go:9:2:9:7 | field1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | S2 | field1 | +| struct_tags.go:10:2:10:7 | field2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | S2 | field2 | diff --git a/go/ql/test/library-tests/semmle/go/Types/InterfaceMethodIds.expected b/go/ql/test/library-tests/semmle/go/Types/InterfaceMethodIds.expected new file mode 100644 index 000000000000..9bcfcde1db96 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/InterfaceMethodIds.expected @@ -0,0 +1,3 @@ +| interface { Exported func() ; notExported func() } | func() | Exported | +| interface { Exported func() ; notExported func() } | func() | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.notExported | +| interface { Exported func() ; notExported func() } | func() | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.notExported | diff --git a/go/ql/test/library-tests/semmle/go/Types/InterfaceMethodIds.ql b/go/ql/test/library-tests/semmle/go/Types/InterfaceMethodIds.ql new file mode 100644 index 000000000000..356bc85c931b --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/InterfaceMethodIds.ql @@ -0,0 +1,12 @@ +import go + +from NamedType nt, InterfaceType it, Type methodType, string id +where + nt.getName() = "MixedExportedAndNot" and + it = nt.getUnderlyingType() and + ( + it.hasPrivateMethodWithQualifiedName(_, id, methodType) + or + it.hasMethod(id, methodType) and not it.hasPrivateMethodWithQualifiedName(id, _, _) + ) +select it.pp(), methodType.pp(), id diff --git a/go/ql/test/library-tests/semmle/go/Types/MethodCount.expected b/go/ql/test/library-tests/semmle/go/Types/MethodCount.expected index 2b6dc32cada9..a91da6a8e90c 100644 --- a/go/ql/test/library-tests/semmle/go/Types/MethodCount.expected +++ b/go/ql/test/library-tests/semmle/go/Types/MethodCount.expected @@ -14,6 +14,7 @@ | C | 2 | | Foo | 1 | | GenericInterface | 1 | +| MixedExportedAndNot | 2 | | MyInterface | 17 | | T | 1 | | T3 | 1 | diff --git a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected index da2e9c1eb308..695f2cb7e906 100644 --- a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected +++ b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected @@ -48,6 +48,10 @@ | pkg1/interfaces.go:26:6:26:14 | AExtended | m | func() | | pkg1/interfaces.go:26:6:26:14 | AExtended | n | func() | | pkg1/interfaces.go:31:6:31:7 | A2 | m | func() | +| pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | Exported | func() | +| pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | notExported | func() | | pkg1/tst.go:3:6:3:6 | T | half | func() Foo | | pkg1/tst.go:14:6:14:7 | T3 | half | func() Foo | | pkg1/tst.go:19:6:19:7 | T4 | half | func() Foo | +| pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | Exported | func() | +| pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | notExported | func() | diff --git a/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName2.expected b/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName2.expected index bf1bd76aa338..e39dc1c37bf2 100644 --- a/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName2.expected +++ b/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName2.expected @@ -53,7 +53,11 @@ | pkg1/interfaces.go:14:2:14:2 | o | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.C | o | | pkg1/interfaces.go:28:2:28:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AExtended | n | | pkg1/interfaces.go:32:2:32:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.A2 | m | +| pkg1/interfaces.go:36:2:36:9 | Exported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.MixedExportedAndNot | Exported | +| pkg1/interfaces.go:37:2:37:12 | notExported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.MixedExportedAndNot | notExported | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Foo | half | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T | half | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T3 | half | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T4 | half | +| pkg2/tst.go:12:2:12:9 | Exported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.MixedExportedAndNot | Exported | +| pkg2/tst.go:13:2:13:12 | notExported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.MixedExportedAndNot | notExported | diff --git a/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName3.expected b/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName3.expected index 24eac7cebc14..6bf4488df233 100644 --- a/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName3.expected +++ b/go/ql/test/library-tests/semmle/go/Types/Method_hasQualifiedName3.expected @@ -53,7 +53,11 @@ | pkg1/interfaces.go:14:2:14:2 | o | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | C | o | | pkg1/interfaces.go:28:2:28:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | AExtended | n | | pkg1/interfaces.go:32:2:32:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | A2 | m | +| pkg1/interfaces.go:36:2:36:9 | Exported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | MixedExportedAndNot | Exported | +| pkg1/interfaces.go:37:2:37:12 | notExported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | MixedExportedAndNot | notExported | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | Foo | half | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T | half | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T3 | half | | pkg1/tst.go:33:16:33:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T4 | half | +| pkg2/tst.go:12:2:12:9 | Exported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | MixedExportedAndNot | Exported | +| pkg2/tst.go:13:2:13:12 | notExported | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | MixedExportedAndNot | notExported | diff --git a/go/ql/test/library-tests/semmle/go/Types/Methods.expected b/go/ql/test/library-tests/semmle/go/Types/Methods.expected index 8b2406ec8589..d84593653ad9 100644 --- a/go/ql/test/library-tests/semmle/go/Types/Methods.expected +++ b/go/ql/test/library-tests/semmle/go/Types/Methods.expected @@ -24,6 +24,10 @@ | C | o | pkg1/interfaces.go:14:2:14:2 | o | | Foo | half | pkg1/tst.go:33:16:33:19 | half | | GenericInterface | GetT | generic.go:33:2:33:5 | GetT | +| MixedExportedAndNot | Exported | pkg1/interfaces.go:36:2:36:9 | Exported | +| MixedExportedAndNot | Exported | pkg2/tst.go:12:2:12:9 | Exported | +| MixedExportedAndNot | notExported | pkg1/interfaces.go:37:2:37:12 | notExported | +| MixedExportedAndNot | notExported | pkg2/tst.go:13:2:13:12 | notExported | | MyInterface | clone | generic.go:48:2:48:6 | clone | | MyInterface | dummy1 | generic.go:49:2:49:7 | dummy1 | | MyInterface | dummy2 | generic.go:50:2:50:7 | dummy2 | diff --git a/go/ql/test/library-tests/semmle/go/Types/QualifiedNames.expected b/go/ql/test/library-tests/semmle/go/Types/QualifiedNames.expected index bedfbc5fa00a..b2befe28a2d1 100644 --- a/go/ql/test/library-tests/semmle/go/Types/QualifiedNames.expected +++ b/go/ql/test/library-tests/semmle/go/Types/QualifiedNames.expected @@ -90,6 +90,7 @@ | pkg1/interfaces.go:21:6:21:7 | AC | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AC | | pkg1/interfaces.go:26:6:26:14 | AExtended | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AExtended | | pkg1/interfaces.go:31:6:31:7 | A2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.A2 | +| pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.MixedExportedAndNot | | pkg1/tst.go:3:6:3:6 | T | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T | | pkg1/tst.go:9:6:9:7 | T2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T2 | | pkg1/tst.go:14:6:14:7 | T3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T3 | @@ -98,3 +99,6 @@ | pkg1/tst.go:29:6:29:8 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Bar | | pkg2/tst.go:3:6:3:6 | T | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.T | | pkg2/tst.go:7:6:7:6 | G | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.G | +| pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.MixedExportedAndNot | +| struct_tags.go:3:6:3:7 | S1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S1 | +| struct_tags.go:8:6:8:7 | S2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S2 | diff --git a/go/ql/test/library-tests/semmle/go/Types/StructFields.expected b/go/ql/test/library-tests/semmle/go/Types/StructFields.expected index 5bce8e1d7df1..a8194965721e 100644 --- a/go/ql/test/library-tests/semmle/go/Types/StructFields.expected +++ b/go/ql/test/library-tests/semmle/go/Types/StructFields.expected @@ -66,3 +66,7 @@ | pkg2/tst.go:3:6:3:6 | T | pkg2/tst.go:7:8:9:1 | struct type | g | int | | pkg2/tst.go:7:6:7:6 | G | pkg2/tst.go:3:8:5:1 | struct type | g | int | | pkg2/tst.go:7:6:7:6 | G | pkg2/tst.go:7:8:9:1 | struct type | g | int | +| struct_tags.go:3:6:3:7 | S1 | struct_tags.go:3:9:6:1 | struct type | field1 | int | +| struct_tags.go:3:6:3:7 | S1 | struct_tags.go:3:9:6:1 | struct type | field2 | int | +| struct_tags.go:8:6:8:7 | S2 | struct_tags.go:8:9:11:1 | struct type | field1 | int | +| struct_tags.go:8:6:8:7 | S2 | struct_tags.go:8:9:11:1 | struct type | field2 | int | diff --git a/go/ql/test/library-tests/semmle/go/Types/Types.expected b/go/ql/test/library-tests/semmle/go/Types/Types.expected index 3801769db02d..19cfb7bd4f2e 100644 --- a/go/ql/test/library-tests/semmle/go/Types/Types.expected +++ b/go/ql/test/library-tests/semmle/go/Types/Types.expected @@ -90,6 +90,7 @@ | pkg1/interfaces.go:21:6:21:7 | AC | AC | | pkg1/interfaces.go:26:6:26:14 | AExtended | AExtended | | pkg1/interfaces.go:31:6:31:7 | A2 | A2 | +| pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | MixedExportedAndNot | | pkg1/tst.go:3:6:3:6 | T | T | | pkg1/tst.go:9:6:9:7 | T2 | T2 | | pkg1/tst.go:14:6:14:7 | T3 | T3 | @@ -98,3 +99,6 @@ | pkg1/tst.go:29:6:29:8 | Bar | Bar | | pkg2/tst.go:3:6:3:6 | T | T | | pkg2/tst.go:7:6:7:6 | G | G | +| pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | MixedExportedAndNot | +| struct_tags.go:3:6:3:7 | S1 | S1 | +| struct_tags.go:8:6:8:7 | S2 | S2 | diff --git a/go/ql/test/library-tests/semmle/go/Types/pkg1/interfaces.go b/go/ql/test/library-tests/semmle/go/Types/pkg1/interfaces.go index caeb62ea40ca..81a5e5854072 100644 --- a/go/ql/test/library-tests/semmle/go/Types/pkg1/interfaces.go +++ b/go/ql/test/library-tests/semmle/go/Types/pkg1/interfaces.go @@ -31,3 +31,8 @@ type AExtended interface { type A2 interface { m() } + +type MixedExportedAndNot interface { + Exported() + notExported() +} diff --git a/go/ql/test/library-tests/semmle/go/Types/pkg2/tst.go b/go/ql/test/library-tests/semmle/go/Types/pkg2/tst.go index 7f6f7f2d2877..af91e514b77c 100644 --- a/go/ql/test/library-tests/semmle/go/Types/pkg2/tst.go +++ b/go/ql/test/library-tests/semmle/go/Types/pkg2/tst.go @@ -7,3 +7,8 @@ type T struct { type G struct { g int } + +type MixedExportedAndNot interface { + Exported() + notExported() +} diff --git a/go/ql/test/library-tests/semmle/go/Types/struct_tags.expected b/go/ql/test/library-tests/semmle/go/Types/struct_tags.expected new file mode 100644 index 000000000000..33c7afd80ec6 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/struct_tags.expected @@ -0,0 +1,4 @@ +| struct { field1 int `tag1a`; field2 int `tag2a` } | struct_tags.go:4:2:4:7 | field1 | tag1a | +| struct { field1 int `tag1a`; field2 int `tag2a` } | struct_tags.go:5:2:5:7 | field2 | tag2a | +| struct { field1 int `tag1b`; field2 int `tag2b` } | struct_tags.go:9:2:9:7 | field1 | tag1b | +| struct { field1 int `tag1b`; field2 int `tag2b` } | struct_tags.go:10:2:10:7 | field2 | tag2b | diff --git a/go/ql/test/library-tests/semmle/go/Types/struct_tags.go b/go/ql/test/library-tests/semmle/go/Types/struct_tags.go new file mode 100644 index 000000000000..c06f8395135a --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/struct_tags.go @@ -0,0 +1,11 @@ +package main + +type S1 struct { + field1 int `tag1a` + field2 int `tag2a` +} + +type S2 struct { + field1 int `tag1b` + field2 int `tag2b` +} diff --git a/go/ql/test/library-tests/semmle/go/Types/struct_tags.ql b/go/ql/test/library-tests/semmle/go/Types/struct_tags.ql new file mode 100644 index 000000000000..05ce098aed4b --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/struct_tags.ql @@ -0,0 +1,8 @@ +import go + +from StructType s, Field f, string tag +where + f = s.getOwnField(_, _) and + tag = f.getTag() and + tag != "" +select s.pp(), f, tag