Owen Mansel-Chan
29f6d48162
Retain previous check for alias types
2025-01-24 12:30:27 +00:00
Owen Mansel-Chan
57fad4a837
Allow type parameters on alias types
2025-01-24 09:40:58 +00:00
dependabot[bot]
d7eaf9012f
Bump golang.org/x/tools
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/tools` from 0.28.0 to 0.29.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.28.0...v0.29.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-01-07 03:20:27 +00:00
dependabot[bot]
d25045c936
Bump golang.org/x/tools
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/tools` from 0.27.0 to 0.28.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.27.0...v0.28.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-12-05 03:26:59 +00:00
Owen Mansel-Chan
a277bcbc3e
Merge pull request #17941 from owen-mc/go/fix/missing-method-qualified-names
...
Go: fix missing qualified names for some promoted methods
2024-11-11 22:50:17 +00:00
dependabot[bot]
916184964b
Bump golang.org/x/tools
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/tools` from 0.26.0 to 0.27.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.26.0...v0.27.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-11-11 03:24:36 +00:00
Owen Mansel-Chan
38ee2d418a
Fix bug by extracting more pointer types
2024-11-08 13:57:36 +00:00
dependabot[bot]
ccb92357a2
Bump golang.org/x/mod
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/mod](https://github.com/golang/mod ).
Updates `golang.org/x/mod` from 0.21.0 to 0.22.0
- [Commits](https://github.com/golang/mod/compare/v0.21.0...v0.22.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/mod
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-11-08 04:00:30 +00:00
Owen Mansel-Chan
9381dda4a9
Use un-specialized field when extracting struct types
2024-10-11 11:30:02 +01:00
Owen Mansel-Chan
6bf6ed6f48
Add check for object for specialized named type
2024-10-11 11:30:00 +01:00
Owen Mansel-Chan
a810309160
Add check for specialized objects
2024-10-11 11:29:58 +01:00
Owen Mansel-Chan
45710e23c6
Always use generic method object
2024-10-11 11:29:57 +01:00
Owen Mansel-Chan
d013c8940d
Revert "Go: extractor/objecttypes consistency generics"
2024-10-10 21:37:44 +01:00
Owen Mansel-Chan
513efe222d
Add check for object for specialized named type
2024-10-10 13:59:51 +01:00
Owen Mansel-Chan
6f6b4a0bfe
Add check for specialized objects
2024-10-10 13:59:49 +01:00
Owen Mansel-Chan
d295cac697
Always use generic method object
2024-10-10 13:59:47 +01:00
Chris Smowton
58fd1a2241
Merge pull request #17357 from smowton/smowton/feature/go-indistinguishable-types
...
Go: extract and expose struct tags, interface method IDs
2024-10-09 11:06:02 +01:00
Chris Smowton
288e0ec565
component_tags -> struct_tags
2024-10-08 19:23:20 +01:00
Chris Smowton
d04a0f4b87
Add note explaining how to regenerate dbscheme
2024-10-08 19:23:17 +01:00
Chris Smowton
7a7ff4a91e
Apply review comments
2024-10-08 19:23:11 +01:00
Chris Smowton
dcbb66d366
Go: extract and expose struct tags, interface method IDs
...
This enables us to distinguish all database types in QL. Previously structs with the same field names and types but differing tags, and interface types with matching method names and at least one non-exported method but declared in differing packages, were impossible or only sometimes possible to distinguish in QL. With this change these types can be distinguished, as well as permitting queries to examine struct field tags, e.g. to read JSON field name associations.
2024-10-08 19:23:06 +01:00
dependabot[bot]
26f8e64a35
Bump golang.org/x/tools
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/tools` from 0.25.0 to 0.26.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.25.0...v0.26.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-10-07 09:26:56 +00:00
Chris Smowton
d689db23d8
Warn on use of old option
2024-10-01 10:43:28 +01:00
Chris Smowton
c9d6c80913
Log when vendor dir extraction is active
2024-09-30 18:44:20 +01:00
Chris Smowton
684aedf6aa
Golang vendor dir extraction: add extractor option
2024-09-30 18:24:49 +01:00
Owen Mansel-Chan
796db77104
Add comments noting methods from embedded interfaces are already included
2024-09-27 15:03:09 +01:00
Chris Smowton
209f9ec93d
Amend comments per review
2024-09-23 15:20:18 +01:00
Chris Smowton
bb44a2fc8c
Populate pkgInfoMapping for test packages if relevant
2024-09-21 13:38:41 +01:00
Chris Smowton
bcb84a84e1
Only skip test packages at the file-extraction phase
2024-09-20 12:48:08 +01:00
Chris Smowton
f5ff822681
Convert extract-tests option to an official extractor option
2024-09-20 10:03:54 +01:00
Chris Smowton
c3dffc955b
Apply review comments
2024-09-20 09:56:29 +01:00
Chris Smowton
76e6942594
Go: support extracting test code
...
This implements support for test extraction by two mechanisms:
* In autobuild mode, setting `CODEQL_EXTRACTOR_GO_EXTRACT_TESTS` to `true`.
* In manual build mode, tracing a `go test` command (`go test -c` is to be recommended for efficiency).
Go deals with test compilation by creating several extra packages on top of those expected from inspection of the source code (see docs of `packages.Load` for more detail): packages whose IDs include a suffix like `mydomain.com/mypackage [mydomain.com/mypackage.test]`, and packages containing generated test driver code like `mydomain.com/mypackage.test`. There are also additional packages like `mydomain.com/mypackage_tests` which are explicitly present in source code, but not compiled by a normal `go build`.
So far as I can tell, the purpose of the two variants of the package is to resolve dependency cycles (because the tests variant of the package can have more dependencies than the non-tests variant, and non-test code can compile against non-test package variants). Since the test package variants seems to be a superset of the non-tests variant, I employ the simple heuristic of ignoring the variant of each package with the shortest ID. I haven't seen a case where there are three or more variants of a package, so I expect this to always identify the tests variant as the preferred one. If several variants were extracted, and we were to attempt to match Golang's linkage strategy among the different variants, we would need to extend trap-file name and most top-level symbol trap IDs with the package variant they come from; I hope this won't prove necessary.
"Real" `_tests` packages, and wholly synthetic driver code packages, are extracted just like normal.
2024-09-20 09:56:28 +01:00
dependabot[bot]
67fa9738e6
Bump golang.org/x/tools
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/tools` from 0.24.0 to 0.25.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.24.0...v0.25.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-09-19 03:46:50 +00:00
Dave Bartolomeo
485fc04029
Initial merge from main
2024-09-15 08:55:31 -04:00
Owen Mansel-Chan
84c41744c1
Include type parameter's index in its label
2024-09-10 16:52:44 +01:00
dependabot[bot]
3c1e3b66ec
Bump golang.org/x/mod
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/mod](https://github.com/golang/mod ).
Updates `golang.org/x/mod` from 0.20.0 to 0.21.0
- [Commits](https://github.com/golang/mod/compare/v0.20.0...v0.21.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/mod
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-09-06 03:21:50 +00:00
Michael B. Gale
772bc9b5c8
Go: Bump everything to 1.23.1
2024-09-05 21:12:46 +01:00
Michael B. Gale
9aeaae6068
Go: Bump maxGoVersion to 1.23
2024-09-05 21:12:45 +01:00
Michael B. Gale
1a9608a1f5
Go: Don't extract objects for type aliases
2024-09-05 21:12:42 +01:00
Michael B. Gale
97c3efccd1
Go: Factor out isAlias function
2024-09-05 21:12:42 +01:00
Michael B. Gale
c5b8163493
Go: Handle Alias types by extracting the underlying types
2024-09-05 21:12:41 +01:00
Michael B. Gale
4dead2bd8d
Go: Use 1.23 for extractor
2024-09-05 21:12:40 +01:00
Chris Smowton
2939cefc68
Use platform path separators for file testing, and forward-slashes for reporting to CodeQL
2024-08-21 10:15:44 +01:00
Chris Smowton
15b5bcc67c
Output to stdout, not stderr
2024-08-20 17:01:54 +01:00
Chris Smowton
8b9617cd38
Update bazel build files
2024-08-20 15:56:28 +01:00
Chris Smowton
ea3e5c8a99
Clarify comment
2024-08-20 15:56:27 +01:00
Chris Smowton
f1f6f9b580
Share vendor-dir extraction logic between extractor and configure-baseline script
2024-08-20 15:56:26 +01:00
Chris Smowton
22802fd41f
Improve struct naming
2024-08-20 15:56:25 +01:00
Chris Smowton
624d2b83c0
Tidy comments
2024-08-20 15:56:23 +01:00
Chris Smowton
21366dd502
Go / configure-baseline: account for multiple vendor directories and the CODEQL_EXTRACTOR_GO_EXTRACT_VENDOR_DIRS setting
...
Our existing configure-baseline scripts would give the wrong result if a `vendor` directory wasn't at the root of the repository, or if the `CODEQL_EXTRACTOR_GO_EXTRACT_VENDOR_DIRS` variable was set to `true` indicating the user wants their vendored code scanned.
Here I replace the shell scripts that implemented the very simplest behaviour with a small Go program.
2024-08-20 15:56:22 +01:00