Merge branch 'main' into rust-ref-pattern

This commit is contained in:
Simon Friis Vindum
2025-02-12 13:23:19 +01:00
48 changed files with 1047 additions and 577 deletions

View File

@@ -243,7 +243,7 @@ use_repo(
)
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
go_sdk.download(version = "1.23.1")
go_sdk.download(version = "1.24.0")
go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps")
go_deps.from_file(go_mod = "//go/extractor:go.mod")

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* The models for `System.Net.Http.HttpRequestMessage` and `System.UriBuilder` have been modified to better model the flow of tainted URIs.

View File

@@ -10,6 +10,8 @@ extensions:
data:
- ["System.Net.Http", "HttpRequestMessage", False, "HttpRequestMessage", "(System.Net.Http.HttpMethod,System.String)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["System.Net.Http", "HttpRequestMessage", False, "HttpRequestMessage", "(System.Net.Http.HttpMethod,System.String)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["System.Net.Http", "HttpRequestMessage", False, "HttpRequestMessage", "(System.Net.Http.HttpMethod,System.Uri)", "", "Argument[0]", "Argument[this]", "taint", "manual"]
- ["System.Net.Http", "HttpRequestMessage", False, "HttpRequestMessage", "(System.Net.Http.HttpMethod,System.Uri)", "", "Argument[1]", "Argument[this]", "taint", "manual"]
- ["System.Net.Http", "HttpRequestOptions", False, "Add", "(System.Collections.Generic.KeyValuePair<System.String,System.Object>)", "", "Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key]", "Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]", "value", "manual"]
- ["System.Net.Http", "HttpRequestOptions", False, "Add", "(System.Collections.Generic.KeyValuePair<System.String,System.Object>)", "", "Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value]", "Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]", "value", "manual"]
- ["System.Net.Http", "MultipartContent", False, "Add", "(System.Net.Http.HttpContent)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]

View File

@@ -784,6 +784,24 @@ extensions:
- ["System", "Uri", False, "get_OriginalString", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["System", "Uri", False, "get_PathAndQuery", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["System", "Uri", False, "get_Query", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"]
- ["System", "UriBuilder", False, "ToString", "()", "", "Argument[this].Property[System.UriBuilder.Scheme,System.UriBuilder.UserName,System.UriBuilder.Password,System.UriBuilder.Host,System.UriBuilder.Port,System.UriBuilder.Path,System.UriBuilder.Query,System.UriBuilder.Fragment]", "ReturnValue", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String)", "", "Argument[0]", "Argument[this].Property[System.UriBuilder.Scheme,System.UriBuilder.Host,System.UriBuilder.Port,System.UriBuilder.Path,System.UriBuilder.Query,System.UriBuilder.Fragment]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.Uri)", "", "Argument[0]", "Argument[this].Property[System.UriBuilder.Scheme,System.UriBuilder.Host,System.UriBuilder.Port,System.UriBuilder.Path,System.UriBuilder.Query,System.UriBuilder.Fragment]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String)", "", "Argument[0]", "Argument[this].Property[System.UriBuilder.Scheme]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String)", "", "Argument[1]", "Argument[this].Property[System.UriBuilder.Host]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32)", "", "Argument[0]", "Argument[this].Property[System.UriBuilder.Scheme]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32)", "", "Argument[1]", "Argument[this].Property[System.UriBuilder.Host]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32)", "", "Argument[2]", "Argument[this].Property[System.UriBuilder.Port]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String)", "", "Argument[0]", "Argument[this].Property[System.UriBuilder.Scheme]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String)", "", "Argument[1]", "Argument[this].Property[System.UriBuilder.Host]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String)", "", "Argument[2]", "Argument[this].Property[System.UriBuilder.Port]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String)", "", "Argument[3]", "Argument[this].Property[System.UriBuilder.Path]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String,System.String)", "", "Argument[0]", "Argument[this].Property[System.UriBuilder.Scheme]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String,System.String)", "", "Argument[1]", "Argument[this].Property[System.UriBuilder.Host]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String,System.String)", "", "Argument[2]", "Argument[this].Property[System.UriBuilder.Port]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String,System.String)", "", "Argument[3]", "Argument[this].Property[System.UriBuilder.Path]", "taint", "manual"]
- ["System", "UriBuilder", False, "UriBuilder", "(System.String,System.String,System.Int32,System.String,System.String)", "", "Argument[4]", "Argument[this].Property[System.UriBuilder.Query,System.UriBuilder.Fragment]", "taint", "manual"]
- ["System", "UriBuilder", False, "get_Uri", "()", "", "Argument[this].Property[System.UriBuilder.Scheme,System.UriBuilder.UserName,System.UriBuilder.Password,System.UriBuilder.Host,System.UriBuilder.Port,System.UriBuilder.Path,System.UriBuilder.Query,System.UriBuilder.Fragment]", "ReturnValue", "taint", "manual"]
- ["System", "ValueTuple", False, "Create<T1,T2,T3,T4,T5,T6,T7,T8>", "(T1,T2,T3,T4,T5,T6,T7,T8)", "", "Argument[0]", "ReturnValue.Field[System.ValueTuple`8.Item1]", "value", "manual"]
- ["System", "ValueTuple", False, "Create<T1,T2,T3,T4,T5,T6,T7,T8>", "(T1,T2,T3,T4,T5,T6,T7,T8)", "", "Argument[1]", "ReturnValue.Field[System.ValueTuple`8.Item2]", "value", "manual"]
- ["System", "ValueTuple", False, "Create<T1,T2,T3,T4,T5,T6,T7,T8>", "(T1,T2,T3,T4,T5,T6,T7,T8)", "", "Argument[2]", "ReturnValue.Field[System.ValueTuple`8.Item3]", "value", "manual"]

View File

@@ -14702,8 +14702,8 @@ summary
| System.Net.Http;HttpRequestException;HttpRequestException;(System.String,System.Exception,System.Nullable<System.Net.HttpStatusCode>);Argument[2];Argument[this].Property[System.Net.Http.HttpRequestException.StatusCode];value;dfc-generated |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.String);Argument[0];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.String);Argument[1];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[0];Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._method];value;dfc-generated |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[1];Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._requestUri];value;dfc-generated |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[0];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[1];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;ToString;();Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._method];ReturnValue;taint;dfc-generated |
| System.Net.Http;HttpRequestMessage;ToString;();Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._requestUri];ReturnValue;taint;dfc-generated |
| System.Net.Http;HttpRequestMessage;get_Properties;();Argument[this].Property[System.Net.Http.HttpRequestMessage.Options];ReturnValue;value;dfc-generated |
@@ -23494,13 +23494,49 @@ summary
| System;Uri;get_Query;();Argument[this];ReturnValue;taint;manual |
| System;Uri;get_Scheme;();Argument[this];ReturnValue;taint;df-generated |
| System;Uri;get_UserInfo;();Argument[this];ReturnValue;taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].SyntheticField[System.UriBuilder._uri];taint;dfc-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[0];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[1];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[3];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[4];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].SyntheticField[System.UriBuilder._uri];value;dfc-generated |
| System;UriBuilder;get_Uri;();Argument[this].SyntheticField[System.UriBuilder._uri];ReturnValue;value;dfc-generated |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Fragment];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Host];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Password];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Path];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Port];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Query];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Scheme];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.UserName];ReturnValue;taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Fragment];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Query];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32);Argument[2];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[2];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[3];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[2];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[3];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[4];Argument[this].Property[System.UriBuilder.Fragment];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[4];Argument[this].Property[System.UriBuilder.Query];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Fragment];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Query];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Fragment];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Host];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Password];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Path];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Port];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Query];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Scheme];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.UserName];ReturnValue;taint;manual |
| System;UriFormatException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated |
| System;UriParser;GetComponents;(System.Uri,System.UriComponents,System.UriFormat);Argument[0];ReturnValue;taint;df-generated |
| System;UriParser;OnNewUri;();Argument[this];ReturnValue;value;dfc-generated |

View File

@@ -11329,8 +11329,8 @@
| System.Net.Http;HttpRequestException;HttpRequestException;(System.String,System.Exception,System.Nullable<System.Net.HttpStatusCode>);Argument[2];Argument[this].Property[System.Net.Http.HttpRequestException.StatusCode];value;dfc-generated |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.String);Argument[0];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.String);Argument[1];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[0];Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._method];value;dfc-generated |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[1];Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._requestUri];value;dfc-generated |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[0];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;HttpRequestMessage;(System.Net.Http.HttpMethod,System.Uri);Argument[1];Argument[this];taint;manual |
| System.Net.Http;HttpRequestMessage;ToString;();Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._method];ReturnValue;taint;dfc-generated |
| System.Net.Http;HttpRequestMessage;ToString;();Argument[this].SyntheticField[System.Net.Http.HttpRequestMessage._requestUri];ReturnValue;taint;dfc-generated |
| System.Net.Http;HttpRequestMessage;get_Properties;();Argument[this].Property[System.Net.Http.HttpRequestMessage.Options];ReturnValue;value;dfc-generated |
@@ -18150,13 +18150,49 @@
| System;Uri;get_Query;();Argument[this];ReturnValue;taint;manual |
| System;Uri;get_Scheme;();Argument[this];ReturnValue;taint;df-generated |
| System;Uri;get_UserInfo;();Argument[this];ReturnValue;taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].SyntheticField[System.UriBuilder._uri];taint;dfc-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[0];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[1];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[3];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[4];Argument[this];taint;df-generated |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].SyntheticField[System.UriBuilder._uri];value;dfc-generated |
| System;UriBuilder;get_Uri;();Argument[this].SyntheticField[System.UriBuilder._uri];ReturnValue;value;dfc-generated |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Fragment];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Host];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Password];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Path];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Port];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Query];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.Scheme];ReturnValue;taint;manual |
| System;UriBuilder;ToString;();Argument[this].Property[System.UriBuilder.UserName];ReturnValue;taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Fragment];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Query];taint;manual |
| System;UriBuilder;UriBuilder;(System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32);Argument[2];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[2];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String);Argument[3];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[1];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[2];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[3];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[4];Argument[this].Property[System.UriBuilder.Fragment];taint;manual |
| System;UriBuilder;UriBuilder;(System.String,System.String,System.Int32,System.String,System.String);Argument[4];Argument[this].Property[System.UriBuilder.Query];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Fragment];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Host];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Path];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Port];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Query];taint;manual |
| System;UriBuilder;UriBuilder;(System.Uri);Argument[0];Argument[this].Property[System.UriBuilder.Scheme];taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Fragment];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Host];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Password];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Path];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Port];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Query];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.Scheme];ReturnValue;taint;manual |
| System;UriBuilder;get_Uri;();Argument[this].Property[System.UriBuilder.UserName];ReturnValue;taint;manual |
| System;UriParser;GetComponents;(System.Uri,System.UriComponents,System.UriFormat);Argument[0];ReturnValue;taint;df-generated |
| System;UriParser;OnNewUri;();Argument[this];ReturnValue;value;dfc-generated |
| System;UriParser;Register;(System.UriParser,System.String,System.Int32);Argument[1];Argument[0];taint;df-generated |

View File

@@ -4,7 +4,7 @@ inputs:
go-test-version:
description: Which Go version to use for running the tests
required: false
default: "~1.23.1"
default: "~1.24.0"
run-code-checks:
description: Whether to run formatting, code and qhelp generation checks
required: false

View File

@@ -12,7 +12,7 @@ import (
)
var minGoVersion = util.NewSemVer("1.11")
var maxGoVersion = util.NewSemVer("1.23")
var maxGoVersion = util.NewSemVer("1.24")
type versionInfo struct {
goModVersion util.SemVer // The version of Go found in the go directive in the `go.mod` file.

View File

@@ -477,6 +477,12 @@ func extractObjects(tw *trap.Writer, scope *types.Scope, scopeLabel trap.Label)
}
// Populate type parameter parents for named types.
if typeNameObj, ok := obj.(*types.TypeName); ok {
// `types.TypeName` represents a type with a name: a defined
// type, an alias type, a type parameter, or a predeclared
// type such as `int` or `error`. We can distinguish these
// using `typeNameObj.Type()`, except that we need to be
// careful with alias types because before Go 1.24 they would
// return the underlying type.
if tp, ok := typeNameObj.Type().(*types.Named); ok && !typeNameObj.IsAlias() {
populateTypeParamParents(tp.TypeParams(), obj)
} else if tp, ok := typeNameObj.Type().(*types.Alias); ok {

View File

@@ -1,8 +1,8 @@
module github.com/github/codeql-go/extractor
go 1.23
go 1.24
toolchain go1.23.1
toolchain go1.24.0
// when updating this, run
// bazel run @rules_go//go -- mod tidy

View File

@@ -193,7 +193,7 @@ func findGoModFiles(root string) []string {
}
// A regular expression for the Go toolchain version syntax.
var toolchainVersionRe *regexp.Regexp = regexp.MustCompile(`(?m)^([0-9]+\.[0-9]+\.[0-9]+)$`)
var toolchainVersionRe *regexp.Regexp = regexp.MustCompile(`(?m)^([0-9]+\.[0-9]+(\.[0-9]+|rc[0-9]+))$`)
// Returns true if the `go.mod` file specifies a Go language version, that version is `1.21` or greater, and
// there is no `toolchain` directive, and the Go language version is not a valid toolchain version.

View File

@@ -0,0 +1,5 @@
---
category: minorAnalysis
---
* Taint models have been added for the `weak` package, which was added in Go 1.24.
* Taint models have been added for the interfaces `TextAppender` and `BinaryAppender` in the `encoding` package, which were added in Go 1.24.

View File

@@ -3,7 +3,11 @@ extensions:
pack: codeql/go-all
extensible: summaryModel
data:
- ["encoding", "BinaryAppender", True, "AppendBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "BinaryAppender", True, "AppendBinary", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "BinaryMarshaler", True, "MarshalBinary", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "BinaryUnmarshaler", True, "UnmarshalBinary", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]
- ["encoding", "TextAppender", True, "AppendText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "TextAppender", True, "AppendText", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "TextMarshaler", True, "MarshalText", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]
- ["encoding", "TextUnmarshaler", True, "UnmarshalText", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"]

View File

@@ -0,0 +1,7 @@
extensions:
- addsTo:
pack: codeql/go-all
extensible: summaryModel
data:
- ["weak", "", False, "Make", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"]
- ["weak", "Pointer", False, "Value", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"]

View File

@@ -63,18 +63,62 @@ numberOfTypeParameters
| internal/bytealg.HashStrRev | 0 | T | interface { string \| []uint8 } |
| internal/bytealg.IndexRabinKarp | 0 | T | interface { string \| []uint8 } |
| internal/bytealg.LastIndexRabinKarp | 0 | T | interface { string \| []uint8 } |
| internal/poll.ignoringEINTR2 | 0 | T | interface { } |
| internal/runtime/atomic.Pointer.CompareAndSwap | 0 | T | interface { } |
| internal/runtime/atomic.Pointer.CompareAndSwapNoWB | 0 | T | interface { } |
| internal/runtime/atomic.Pointer.Load | 0 | T | interface { } |
| internal/runtime/atomic.Pointer.Store | 0 | T | interface { } |
| internal/runtime/atomic.Pointer.StoreNoWB | 0 | T | interface { } |
| internal/sync.HashTrieMap.All | 0 | K | comparable |
| internal/sync.HashTrieMap.All | 1 | V | interface { } |
| internal/sync.HashTrieMap.CompareAndDelete | 0 | K | comparable |
| internal/sync.HashTrieMap.CompareAndDelete | 1 | V | interface { } |
| internal/sync.HashTrieMap.CompareAndSwap | 0 | K | comparable |
| internal/sync.HashTrieMap.CompareAndSwap | 1 | V | interface { } |
| internal/sync.HashTrieMap.Delete | 0 | K | comparable |
| internal/sync.HashTrieMap.Load | 0 | K | comparable |
| internal/sync.HashTrieMap.Load | 1 | V | interface { } |
| internal/sync.HashTrieMap.LoadAndDelete | 0 | K | comparable |
| internal/sync.HashTrieMap.LoadAndDelete | 1 | V | interface { } |
| internal/sync.HashTrieMap.LoadOrStore | 0 | K | comparable |
| internal/sync.HashTrieMap.LoadOrStore | 1 | V | interface { } |
| internal/sync.HashTrieMap.Range | 0 | K | comparable |
| internal/sync.HashTrieMap.Range | 1 | V | interface { } |
| internal/sync.HashTrieMap.Store | 0 | K | comparable |
| internal/sync.HashTrieMap.Store | 1 | V | interface { } |
| internal/sync.HashTrieMap.Swap | 0 | K | comparable |
| internal/sync.HashTrieMap.Swap | 1 | V | interface { } |
| internal/sync.HashTrieMap.find | 0 | K | comparable |
| internal/sync.HashTrieMap.find | 1 | V | interface { } |
| internal/sync.HashTrieMap.iter | 0 | K | comparable |
| internal/sync.HashTrieMap.iter | 1 | V | interface { } |
| internal/sync.entry | 0 | K | comparable |
| internal/sync.entry | 1 | V | interface { } |
| internal/sync.entry.compareAndDelete | 0 | K | comparable |
| internal/sync.entry.compareAndDelete | 1 | V | interface { } |
| internal/sync.entry.compareAndSwap | 0 | K | comparable |
| internal/sync.entry.compareAndSwap | 1 | V | interface { } |
| internal/sync.entry.loadAndDelete | 0 | K | comparable |
| internal/sync.entry.loadAndDelete | 1 | V | interface { } |
| internal/sync.entry.lookup | 0 | K | comparable |
| internal/sync.entry.lookup | 1 | V | interface { } |
| internal/sync.entry.lookupWithValue | 0 | K | comparable |
| internal/sync.entry.lookupWithValue | 1 | V | interface { } |
| internal/sync.entry.swap | 0 | K | comparable |
| internal/sync.entry.swap | 1 | V | interface { } |
| internal/sync.newEntryNode | 0 | K | comparable |
| internal/sync.newEntryNode | 1 | V | interface { } |
| iter.Pull | 0 | V | interface { } |
| iter.Pull2 | 0 | K | interface { } |
| iter.Pull2 | 1 | V | interface { } |
| iter.Seq | 0 | V | interface { } |
| iter.Seq2 | 0 | K | interface { } |
| iter.Seq2 | 1 | V | interface { } |
| os.doInRoot | 0 | T | interface { } |
| os.ignoringEINTR2 | 0 | T | interface { } |
| reflect.rangeNum | 1 | N | interface { int64 \| uint64 } |
| runtime.AddCleanup | 0 | T | interface { } |
| runtime.AddCleanup | 1 | S | interface { } |
| runtime.fandbits | 0 | F | floaty |
| runtime.fmax | 0 | F | floaty |
| runtime.fmin | 0 | F | floaty |

View File

@@ -14,6 +14,14 @@ entities
| aliases.go | aliases.go:22:6:22:6 | T | 1 | aliases.go:19:6:19:7 | S3 |
| aliases.go | aliases.go:25:6:25:6 | H | 1 | file://:0:0:0:0 | signature type |
| aliases.go | aliases.go:25:8:25:11 | Afs3 | 1 | aliases.go:19:6:19:7 | S3 |
| aliases.go | aliases.go:29:6:29:11 | MyType | 1 | aliases.go:29:6:29:11 | MyType |
| aliases.go | aliases.go:29:13:29:19 | MyTypeT | 1 | file://:0:0:0:0 | type parameter type |
| aliases.go | aliases.go:29:34:29:34 | x | 1 | file://:0:0:0:0 | type parameter type |
| aliases.go | aliases.go:32:6:32:16 | MyTypeAlias | 1 | aliases.go:29:6:29:11 | MyType |
| aliases.go | aliases.go:32:18:32:29 | MyTypeAliasT | 1 | file://:0:0:0:0 | type parameter type |
| aliases.go | aliases.go:34:6:34:19 | useMyTypeAlias | 1 | file://:0:0:0:0 | signature type |
| aliases.go | aliases.go:34:21:34:21 | a | 1 | aliases.go:29:6:29:11 | MyType |
| aliases.go | aliases.go:35:2:35:2 | b | 1 | aliases.go:29:6:29:11 | MyType |
#select
| F | func(struct { x int }) int |
| G | func(struct { x int }) int |

View File

@@ -1,59 +1,60 @@
| aliases.go:6:26:6:26 | x | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| aliases.go:8:26:8:26 | x | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| aliases.go:19:17:19:17 | x | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| cyclic.go:4:3:4:3 | s | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| cyclic.go:8:3:8:3 | u | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| cyclic.go:9:2:9:2 | f | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| cyclic.go:13:2:13:2 | t | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| cyclic.go:17:2:17:2 | s | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| depth.go:6:2:6:2 | b | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| depth.go:7:2:7:2 | c | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| depth.go:11:2:11:2 | f | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| depth.go:15:2:15:2 | d | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| depth.go:19:2:19:2 | f | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| embedded.go:4:2:4:2 | A | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| embedded.go:8:3:8:5 | Baz | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| embedded.go:12:2:12:4 | Qux | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| embedded.go:13:2:13:4 | Baz | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:4:2:4:11 | valueField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:5:2:5:13 | pointerField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:6:2:6:11 | arrayField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:7:2:7:11 | sliceField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:8:2:8:9 | mapField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:12:2:12:13 | pointerField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:16:2:16:5 | root | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:20:2:20:12 | structField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:21:2:21:9 | mapField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:25:2:25:12 | structField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| generic.go:29:2:29:13 | pointerField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| main.go:18:7:18:15 | NameClash | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types |
| pkg1/embedding.go:19:23:19:26 | base | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/embedding.go:22:27:22:30 | base | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/embedding.go:25:24:25:31 | embedder | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/embedding.go:28:24:28:31 | embedder | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/embedding.go:36:2:36:5 | base | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/embedding.go:37:2:37:2 | f | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/promotedStructs.go:5:2:5:7 | SField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/promotedStructs.go:14:2:14:7 | PField | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/promotedStructs.go:22:22:22:22 | S | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/promotedStructs.go:25:22:25:22 | P | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:6:2:6:2 | f | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:7:2:7:4 | Foo | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:8:2:8:4 | Bar | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:12:2:12:4 | Foo | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:13:2:13:4 | Bar | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:17:3:17:5 | Foo | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:18:3:18:5 | Bar | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:22:3:22:5 | Foo | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:23:2:23:4 | Bar | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:27:2:27:4 | val | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:28:2:28:5 | flag | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:32:2:32:5 | flag | package github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 |
| pkg1/tst.go:62:7:62:15 | NameClash | 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 |
| pkg2/tst.go:17:2:17:8 | NCField | 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 |
| aliases.go:6:26:6:26 | x | package codeql-go-types |
| aliases.go:8:26:8:26 | x | package codeql-go-types |
| aliases.go:19:17:19:17 | x | package codeql-go-types |
| aliases.go:29:34:29:34 | x | package codeql-go-types |
| cyclic.go:4:3:4:3 | s | package codeql-go-types |
| cyclic.go:8:3:8:3 | u | package codeql-go-types |
| cyclic.go:9:2:9:2 | f | package codeql-go-types |
| cyclic.go:13:2:13:2 | t | package codeql-go-types |
| cyclic.go:17:2:17:2 | s | package codeql-go-types |
| depth.go:6:2:6:2 | b | package codeql-go-types |
| depth.go:7:2:7:2 | c | package codeql-go-types |
| depth.go:11:2:11:2 | f | package codeql-go-types |
| depth.go:15:2:15:2 | d | package codeql-go-types |
| depth.go:19:2:19:2 | f | package codeql-go-types |
| embedded.go:4:2:4:2 | A | package codeql-go-types |
| embedded.go:8:3:8:5 | Baz | package codeql-go-types |
| embedded.go:12:2:12:4 | Qux | package codeql-go-types |
| embedded.go:13:2:13:4 | Baz | package codeql-go-types |
| generic.go:4:2:4:11 | valueField | package codeql-go-types |
| generic.go:5:2:5:13 | pointerField | package codeql-go-types |
| generic.go:6:2:6:11 | arrayField | package codeql-go-types |
| generic.go:7:2:7:11 | sliceField | package codeql-go-types |
| generic.go:8:2:8:9 | mapField | package codeql-go-types |
| generic.go:12:2:12:13 | pointerField | package codeql-go-types |
| generic.go:16:2:16:5 | root | package codeql-go-types |
| generic.go:20:2:20:12 | structField | package codeql-go-types |
| generic.go:21:2:21:9 | mapField | package codeql-go-types |
| generic.go:25:2:25:12 | structField | package codeql-go-types |
| generic.go:29:2:29:13 | pointerField | package codeql-go-types |
| main.go:18:7:18:15 | NameClash | package codeql-go-types |
| pkg1/embedding.go:19:23:19:26 | base | package codeql-go-types/pkg1 |
| pkg1/embedding.go:22:27:22:30 | base | package codeql-go-types/pkg1 |
| pkg1/embedding.go:25:24:25:31 | embedder | package codeql-go-types/pkg1 |
| pkg1/embedding.go:28:24:28:31 | embedder | package codeql-go-types/pkg1 |
| pkg1/embedding.go:36:2:36:5 | base | package codeql-go-types/pkg1 |
| pkg1/embedding.go:37:2:37:2 | f | package codeql-go-types/pkg1 |
| pkg1/promotedStructs.go:5:2:5:7 | SField | package codeql-go-types/pkg1 |
| pkg1/promotedStructs.go:14:2:14:7 | PField | package codeql-go-types/pkg1 |
| pkg1/promotedStructs.go:22:22:22:22 | S | package codeql-go-types/pkg1 |
| pkg1/promotedStructs.go:25:22:25:22 | P | package codeql-go-types/pkg1 |
| pkg1/tst.go:6:2:6:2 | f | package codeql-go-types/pkg1 |
| pkg1/tst.go:7:2:7:4 | Foo | package codeql-go-types/pkg1 |
| pkg1/tst.go:8:2:8:4 | Bar | package codeql-go-types/pkg1 |
| pkg1/tst.go:12:2:12:4 | Foo | package codeql-go-types/pkg1 |
| pkg1/tst.go:13:2:13:4 | Bar | package codeql-go-types/pkg1 |
| pkg1/tst.go:17:3:17:5 | Foo | package codeql-go-types/pkg1 |
| pkg1/tst.go:18:3:18:5 | Bar | package codeql-go-types/pkg1 |
| pkg1/tst.go:22:3:22:5 | Foo | package codeql-go-types/pkg1 |
| pkg1/tst.go:23:2:23:4 | Bar | package codeql-go-types/pkg1 |
| pkg1/tst.go:27:2:27:4 | val | package codeql-go-types/pkg1 |
| pkg1/tst.go:28:2:28:5 | flag | package codeql-go-types/pkg1 |
| pkg1/tst.go:32:2:32:5 | flag | package codeql-go-types/pkg1 |
| pkg1/tst.go:62:7:62:15 | NameClash | package codeql-go-types/pkg1 |
| pkg2/tst.go:4:2:4:2 | g | package codeql-go-types/pkg2 |
| pkg2/tst.go:8:2:8:2 | g | package codeql-go-types/pkg2 |
| pkg2/tst.go:17:2:17:8 | NCField | package codeql-go-types/pkg2 |
| struct_tags.go:4:2:4:7 | field1 | package codeql-go-types |
| struct_tags.go:5:2:5:7 | field2 | package codeql-go-types |
| struct_tags.go:9:2:9:7 | field1 | package codeql-go-types |
| struct_tags.go:10:2:10:7 | field2 | package codeql-go-types |

View File

@@ -1,82 +1,83 @@
| aliases.go:6:26:6:26 | x | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S3 | x |
| aliases.go:8:26:8:26 | x | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S3 | x |
| aliases.go:19:17:19:17 | x | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S3 | x |
| cyclic.go:4:3:4:3 | s | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.s | s |
| cyclic.go:8:3:8:3 | u | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.t | u |
| cyclic.go:8:3:8:3 | u | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.u | u |
| cyclic.go:9:2:9:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.t | f |
| cyclic.go:9:2:9:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.u | f |
| cyclic.go:13:2:13:2 | t | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.t | t |
| cyclic.go:13:2:13:2 | t | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.u | t |
| cyclic.go:17:2:17:2 | s | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.v | s |
| depth.go:6:2:6:2 | b | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.a | b |
| depth.go:7:2:7:2 | c | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.a | c |
| depth.go:11:2:11:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.a | f |
| depth.go:11:2:11:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.b | f |
| depth.go:15:2:15:2 | d | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.a | d |
| depth.go:15:2:15:2 | d | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.c | d |
| depth.go:19:2:19:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.c | f |
| depth.go:19:2:19:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.d | f |
| embedded.go:4:2:4:2 | A | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.Baz | A |
| embedded.go:4:2:4:2 | A | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsBaz | A |
| embedded.go:4:2:4:2 | A | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.Qux | A |
| embedded.go:8:3:8:5 | Baz | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.Qux | Baz |
| embedded.go:12:2:12:4 | Qux | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsBaz | Qux |
| embedded.go:13:2:13:4 | Baz | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsBaz | Baz |
| generic.go:4:2:4:11 | valueField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct1 | valueField |
| generic.go:5:2:5:13 | pointerField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct1 | pointerField |
| generic.go:6:2:6:11 | arrayField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct1 | arrayField |
| generic.go:7:2:7:11 | sliceField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct1 | sliceField |
| generic.go:8:2:8:9 | mapField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct1 | mapField |
| generic.go:12:2:12:13 | pointerField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.CircularGenericStruct1 | pointerField |
| generic.go:16:2:16:5 | root | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.UsesCircularGenericStruct1 | root |
| generic.go:20:2:20:12 | structField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct2 | structField |
| generic.go:21:2:21:9 | mapField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct2 | mapField |
| generic.go:25:2:25:12 | structField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct2b | structField |
| generic.go:29:2:29:13 | pointerField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.CircularGenericStruct2 | pointerField |
| main.go:18:7:18:15 | NameClash | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsNameClash | NameClash |
| pkg1/embedding.go:19:23:19:26 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder | base |
| pkg1/embedding.go:19:23:19:26 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder2 | base |
| pkg1/embedding.go:19:23:19:26 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder3 | base |
| pkg1/embedding.go:22:27:22:30 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.ptrembedder | base |
| pkg1/embedding.go:25:24:25:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder2 | embedder |
| pkg1/embedding.go:25:24:25:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder3 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder2 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder3 | embedder |
| pkg1/embedding.go:36:2:36:5 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder4 | base |
| pkg1/embedding.go:37:2:37:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder4 | f |
| pkg1/promotedStructs.go:5:2:5:7 | SField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.S | SField |
| pkg1/promotedStructs.go:5:2:5:7 | SField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedS | SField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.P | PField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedP | PField |
| pkg1/promotedStructs.go:22:22:22:22 | S | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedS | S |
| pkg1/promotedStructs.go:25:22:25:22 | P | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedP | P |
| pkg1/tst.go:6:2:6:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T | f |
| pkg1/tst.go:7:2:7:4 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T | Foo |
| pkg1/tst.go:8:2:8:4 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T | Bar |
| pkg1/tst.go:12:2:12:4 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T2 | Foo |
| pkg1/tst.go:13:2:13:4 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T2 | Bar |
| pkg1/tst.go:17:3:17:5 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T3 | Foo |
| pkg1/tst.go:18:3:18:5 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T3 | Bar |
| pkg1/tst.go:22:3:22:5 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T4 | Foo |
| pkg1/tst.go:23:2:23:4 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T4 | Bar |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Foo | val |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T | val |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T3 | val |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T4 | val |
| pkg1/tst.go:28:2:28:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Foo | flag |
| pkg1/tst.go:28:2:28:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T4 | flag |
| pkg1/tst.go:32:2:32:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Bar | flag |
| pkg1/tst.go:32:2:32:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T2 | flag |
| pkg1/tst.go:62:7:62:15 | NameClash | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.NameClash | NameClash |
| pkg2/tst.go:4:2:4:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.G | g |
| 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 |
| pkg2/tst.go:17:2:17:8 | NCField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsNameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.NameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.NameClash | NCField |
| 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 |
| aliases.go:6:26:6:26 | x | codeql-go-types.S3 | x |
| aliases.go:8:26:8:26 | x | codeql-go-types.S3 | x |
| aliases.go:19:17:19:17 | x | codeql-go-types.S3 | x |
| aliases.go:29:34:29:34 | x | codeql-go-types.MyType | x |
| cyclic.go:4:3:4:3 | s | codeql-go-types.s | s |
| cyclic.go:8:3:8:3 | u | codeql-go-types.t | u |
| cyclic.go:8:3:8:3 | u | codeql-go-types.u | u |
| cyclic.go:9:2:9:2 | f | codeql-go-types.t | f |
| cyclic.go:9:2:9:2 | f | codeql-go-types.u | f |
| cyclic.go:13:2:13:2 | t | codeql-go-types.t | t |
| cyclic.go:13:2:13:2 | t | codeql-go-types.u | t |
| cyclic.go:17:2:17:2 | s | codeql-go-types.v | s |
| depth.go:6:2:6:2 | b | codeql-go-types.a | b |
| depth.go:7:2:7:2 | c | codeql-go-types.a | c |
| depth.go:11:2:11:2 | f | codeql-go-types.a | f |
| depth.go:11:2:11:2 | f | codeql-go-types.b | f |
| depth.go:15:2:15:2 | d | codeql-go-types.a | d |
| depth.go:15:2:15:2 | d | codeql-go-types.c | d |
| depth.go:19:2:19:2 | f | codeql-go-types.c | f |
| depth.go:19:2:19:2 | f | codeql-go-types.d | f |
| embedded.go:4:2:4:2 | A | codeql-go-types.Baz | A |
| embedded.go:4:2:4:2 | A | codeql-go-types.EmbedsBaz | A |
| embedded.go:4:2:4:2 | A | codeql-go-types.Qux | A |
| embedded.go:8:3:8:5 | Baz | codeql-go-types.Qux | Baz |
| embedded.go:12:2:12:4 | Qux | codeql-go-types.EmbedsBaz | Qux |
| embedded.go:13:2:13:4 | Baz | codeql-go-types.EmbedsBaz | Baz |
| generic.go:4:2:4:11 | valueField | codeql-go-types.GenericStruct1 | valueField |
| generic.go:5:2:5:13 | pointerField | codeql-go-types.GenericStruct1 | pointerField |
| generic.go:6:2:6:11 | arrayField | codeql-go-types.GenericStruct1 | arrayField |
| generic.go:7:2:7:11 | sliceField | codeql-go-types.GenericStruct1 | sliceField |
| generic.go:8:2:8:9 | mapField | codeql-go-types.GenericStruct1 | mapField |
| generic.go:12:2:12:13 | pointerField | codeql-go-types.CircularGenericStruct1 | pointerField |
| generic.go:16:2:16:5 | root | codeql-go-types.UsesCircularGenericStruct1 | root |
| generic.go:20:2:20:12 | structField | codeql-go-types.GenericStruct2 | structField |
| generic.go:21:2:21:9 | mapField | codeql-go-types.GenericStruct2 | mapField |
| generic.go:25:2:25:12 | structField | codeql-go-types.GenericStruct2b | structField |
| generic.go:29:2:29:13 | pointerField | codeql-go-types.CircularGenericStruct2 | pointerField |
| main.go:18:7:18:15 | NameClash | codeql-go-types.EmbedsNameClash | NameClash |
| pkg1/embedding.go:19:23:19:26 | base | codeql-go-types/pkg1.embedder | base |
| pkg1/embedding.go:19:23:19:26 | base | codeql-go-types/pkg1.embedder2 | base |
| pkg1/embedding.go:19:23:19:26 | base | codeql-go-types/pkg1.embedder3 | base |
| pkg1/embedding.go:22:27:22:30 | base | codeql-go-types/pkg1.ptrembedder | base |
| pkg1/embedding.go:25:24:25:31 | embedder | codeql-go-types/pkg1.embedder2 | embedder |
| pkg1/embedding.go:25:24:25:31 | embedder | codeql-go-types/pkg1.embedder3 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | codeql-go-types/pkg1.embedder2 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | codeql-go-types/pkg1.embedder3 | embedder |
| pkg1/embedding.go:36:2:36:5 | base | codeql-go-types/pkg1.embedder4 | base |
| pkg1/embedding.go:37:2:37:2 | f | codeql-go-types/pkg1.embedder4 | f |
| pkg1/promotedStructs.go:5:2:5:7 | SField | codeql-go-types/pkg1.S | SField |
| pkg1/promotedStructs.go:5:2:5:7 | SField | codeql-go-types/pkg1.SEmbedS | SField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | codeql-go-types/pkg1.P | PField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | codeql-go-types/pkg1.SEmbedP | PField |
| pkg1/promotedStructs.go:22:22:22:22 | S | codeql-go-types/pkg1.SEmbedS | S |
| pkg1/promotedStructs.go:25:22:25:22 | P | codeql-go-types/pkg1.SEmbedP | P |
| pkg1/tst.go:6:2:6:2 | f | codeql-go-types/pkg1.T | f |
| pkg1/tst.go:7:2:7:4 | Foo | codeql-go-types/pkg1.T | Foo |
| pkg1/tst.go:8:2:8:4 | Bar | codeql-go-types/pkg1.T | Bar |
| pkg1/tst.go:12:2:12:4 | Foo | codeql-go-types/pkg1.T2 | Foo |
| pkg1/tst.go:13:2:13:4 | Bar | codeql-go-types/pkg1.T2 | Bar |
| pkg1/tst.go:17:3:17:5 | Foo | codeql-go-types/pkg1.T3 | Foo |
| pkg1/tst.go:18:3:18:5 | Bar | codeql-go-types/pkg1.T3 | Bar |
| pkg1/tst.go:22:3:22:5 | Foo | codeql-go-types/pkg1.T4 | Foo |
| pkg1/tst.go:23:2:23:4 | Bar | codeql-go-types/pkg1.T4 | Bar |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1.Foo | val |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1.T | val |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1.T3 | val |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1.T4 | val |
| pkg1/tst.go:28:2:28:5 | flag | codeql-go-types/pkg1.Foo | flag |
| pkg1/tst.go:28:2:28:5 | flag | codeql-go-types/pkg1.T4 | flag |
| pkg1/tst.go:32:2:32:5 | flag | codeql-go-types/pkg1.Bar | flag |
| pkg1/tst.go:32:2:32:5 | flag | codeql-go-types/pkg1.T2 | flag |
| pkg1/tst.go:62:7:62:15 | NameClash | codeql-go-types/pkg1.NameClash | NameClash |
| pkg2/tst.go:4:2:4:2 | g | codeql-go-types/pkg2.G | g |
| pkg2/tst.go:4:2:4:2 | g | codeql-go-types/pkg2.T | g |
| pkg2/tst.go:8:2:8:2 | g | codeql-go-types/pkg2.G | g |
| pkg2/tst.go:8:2:8:2 | g | codeql-go-types/pkg2.T | g |
| pkg2/tst.go:17:2:17:8 | NCField | codeql-go-types.EmbedsNameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | codeql-go-types/pkg1.NameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | codeql-go-types/pkg2.NameClash | NCField |
| struct_tags.go:4:2:4:7 | field1 | codeql-go-types.S1 | field1 |
| struct_tags.go:5:2:5:7 | field2 | codeql-go-types.S1 | field2 |
| struct_tags.go:9:2:9:7 | field1 | codeql-go-types.S2 | field1 |
| struct_tags.go:10:2:10:7 | field2 | codeql-go-types.S2 | field2 |

View File

@@ -1,82 +1,83 @@
| aliases.go:6:26:6:26 | x | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | S3 | x |
| aliases.go:8:26:8:26 | x | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | S3 | x |
| aliases.go:19:17:19:17 | x | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | S3 | x |
| cyclic.go:4:3:4:3 | s | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | s | s |
| cyclic.go:8:3:8:3 | u | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | t | u |
| cyclic.go:8:3:8:3 | u | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | u | u |
| cyclic.go:9:2:9:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | t | f |
| cyclic.go:9:2:9:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | u | f |
| cyclic.go:13:2:13:2 | t | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | t | t |
| cyclic.go:13:2:13:2 | t | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | u | t |
| cyclic.go:17:2:17:2 | s | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | v | s |
| depth.go:6:2:6:2 | b | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | a | b |
| depth.go:7:2:7:2 | c | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | a | c |
| depth.go:11:2:11:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | a | f |
| depth.go:11:2:11:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | b | f |
| depth.go:15:2:15:2 | d | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | a | d |
| depth.go:15:2:15:2 | d | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | c | d |
| depth.go:19:2:19:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | c | f |
| depth.go:19:2:19:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | d | f |
| embedded.go:4:2:4:2 | A | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | Baz | A |
| embedded.go:4:2:4:2 | A | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | EmbedsBaz | A |
| embedded.go:4:2:4:2 | A | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | Qux | A |
| embedded.go:8:3:8:5 | Baz | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | Qux | Baz |
| embedded.go:12:2:12:4 | Qux | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | EmbedsBaz | Qux |
| embedded.go:13:2:13:4 | Baz | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | EmbedsBaz | Baz |
| generic.go:4:2:4:11 | valueField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct1 | valueField |
| generic.go:5:2:5:13 | pointerField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct1 | pointerField |
| generic.go:6:2:6:11 | arrayField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct1 | arrayField |
| generic.go:7:2:7:11 | sliceField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct1 | sliceField |
| generic.go:8:2:8:9 | mapField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct1 | mapField |
| generic.go:12:2:12:13 | pointerField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | CircularGenericStruct1 | pointerField |
| generic.go:16:2:16:5 | root | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | UsesCircularGenericStruct1 | root |
| generic.go:20:2:20:12 | structField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct2 | structField |
| generic.go:21:2:21:9 | mapField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct2 | mapField |
| generic.go:25:2:25:12 | structField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericStruct2b | structField |
| generic.go:29:2:29:13 | pointerField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | CircularGenericStruct2 | pointerField |
| main.go:18:7:18:15 | NameClash | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | EmbedsNameClash | NameClash |
| pkg1/embedding.go:19:23:19:26 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder | base |
| pkg1/embedding.go:19:23:19:26 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder2 | base |
| pkg1/embedding.go:19:23:19:26 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder3 | base |
| pkg1/embedding.go:22:27:22:30 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | ptrembedder | base |
| pkg1/embedding.go:25:24:25:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder2 | embedder |
| pkg1/embedding.go:25:24:25:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder3 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder2 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder3 | embedder |
| pkg1/embedding.go:36:2:36:5 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder4 | base |
| pkg1/embedding.go:37:2:37:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder4 | f |
| pkg1/promotedStructs.go:5:2:5:7 | SField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | S | SField |
| pkg1/promotedStructs.go:5:2:5:7 | SField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | SEmbedS | SField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | P | PField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | SEmbedP | PField |
| pkg1/promotedStructs.go:22:22:22:22 | S | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | SEmbedS | S |
| pkg1/promotedStructs.go:25:22:25:22 | P | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | SEmbedP | P |
| pkg1/tst.go:6:2:6:2 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T | f |
| pkg1/tst.go:7:2:7:4 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T | Foo |
| pkg1/tst.go:8:2:8:4 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T | Bar |
| pkg1/tst.go:12:2:12:4 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T2 | Foo |
| pkg1/tst.go:13:2:13:4 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T2 | Bar |
| pkg1/tst.go:17:3:17:5 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T3 | Foo |
| pkg1/tst.go:18:3:18:5 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T3 | Bar |
| pkg1/tst.go:22:3:22:5 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T4 | Foo |
| pkg1/tst.go:23:2:23:4 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T4 | Bar |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | Foo | val |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T | val |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T3 | val |
| pkg1/tst.go:27:2:27:4 | val | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T4 | val |
| pkg1/tst.go:28:2:28:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | Foo | flag |
| pkg1/tst.go:28:2:28:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T4 | flag |
| pkg1/tst.go:32:2:32:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | Bar | flag |
| pkg1/tst.go:32:2:32:5 | flag | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T2 | flag |
| pkg1/tst.go:62:7:62:15 | NameClash | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | NameClash | NameClash |
| pkg2/tst.go:4:2:4:2 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | G | g |
| 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 |
| pkg2/tst.go:17:2:17:8 | NCField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | EmbedsNameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | NameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | NameClash | NCField |
| 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 |
| aliases.go:6:26:6:26 | x | codeql-go-types | S3 | x |
| aliases.go:8:26:8:26 | x | codeql-go-types | S3 | x |
| aliases.go:19:17:19:17 | x | codeql-go-types | S3 | x |
| aliases.go:29:34:29:34 | x | codeql-go-types | MyType | x |
| cyclic.go:4:3:4:3 | s | codeql-go-types | s | s |
| cyclic.go:8:3:8:3 | u | codeql-go-types | t | u |
| cyclic.go:8:3:8:3 | u | codeql-go-types | u | u |
| cyclic.go:9:2:9:2 | f | codeql-go-types | t | f |
| cyclic.go:9:2:9:2 | f | codeql-go-types | u | f |
| cyclic.go:13:2:13:2 | t | codeql-go-types | t | t |
| cyclic.go:13:2:13:2 | t | codeql-go-types | u | t |
| cyclic.go:17:2:17:2 | s | codeql-go-types | v | s |
| depth.go:6:2:6:2 | b | codeql-go-types | a | b |
| depth.go:7:2:7:2 | c | codeql-go-types | a | c |
| depth.go:11:2:11:2 | f | codeql-go-types | a | f |
| depth.go:11:2:11:2 | f | codeql-go-types | b | f |
| depth.go:15:2:15:2 | d | codeql-go-types | a | d |
| depth.go:15:2:15:2 | d | codeql-go-types | c | d |
| depth.go:19:2:19:2 | f | codeql-go-types | c | f |
| depth.go:19:2:19:2 | f | codeql-go-types | d | f |
| embedded.go:4:2:4:2 | A | codeql-go-types | Baz | A |
| embedded.go:4:2:4:2 | A | codeql-go-types | EmbedsBaz | A |
| embedded.go:4:2:4:2 | A | codeql-go-types | Qux | A |
| embedded.go:8:3:8:5 | Baz | codeql-go-types | Qux | Baz |
| embedded.go:12:2:12:4 | Qux | codeql-go-types | EmbedsBaz | Qux |
| embedded.go:13:2:13:4 | Baz | codeql-go-types | EmbedsBaz | Baz |
| generic.go:4:2:4:11 | valueField | codeql-go-types | GenericStruct1 | valueField |
| generic.go:5:2:5:13 | pointerField | codeql-go-types | GenericStruct1 | pointerField |
| generic.go:6:2:6:11 | arrayField | codeql-go-types | GenericStruct1 | arrayField |
| generic.go:7:2:7:11 | sliceField | codeql-go-types | GenericStruct1 | sliceField |
| generic.go:8:2:8:9 | mapField | codeql-go-types | GenericStruct1 | mapField |
| generic.go:12:2:12:13 | pointerField | codeql-go-types | CircularGenericStruct1 | pointerField |
| generic.go:16:2:16:5 | root | codeql-go-types | UsesCircularGenericStruct1 | root |
| generic.go:20:2:20:12 | structField | codeql-go-types | GenericStruct2 | structField |
| generic.go:21:2:21:9 | mapField | codeql-go-types | GenericStruct2 | mapField |
| generic.go:25:2:25:12 | structField | codeql-go-types | GenericStruct2b | structField |
| generic.go:29:2:29:13 | pointerField | codeql-go-types | CircularGenericStruct2 | pointerField |
| main.go:18:7:18:15 | NameClash | codeql-go-types | EmbedsNameClash | NameClash |
| pkg1/embedding.go:19:23:19:26 | base | codeql-go-types/pkg1 | embedder | base |
| pkg1/embedding.go:19:23:19:26 | base | codeql-go-types/pkg1 | embedder2 | base |
| pkg1/embedding.go:19:23:19:26 | base | codeql-go-types/pkg1 | embedder3 | base |
| pkg1/embedding.go:22:27:22:30 | base | codeql-go-types/pkg1 | ptrembedder | base |
| pkg1/embedding.go:25:24:25:31 | embedder | codeql-go-types/pkg1 | embedder2 | embedder |
| pkg1/embedding.go:25:24:25:31 | embedder | codeql-go-types/pkg1 | embedder3 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | codeql-go-types/pkg1 | embedder2 | embedder |
| pkg1/embedding.go:28:24:28:31 | embedder | codeql-go-types/pkg1 | embedder3 | embedder |
| pkg1/embedding.go:36:2:36:5 | base | codeql-go-types/pkg1 | embedder4 | base |
| pkg1/embedding.go:37:2:37:2 | f | codeql-go-types/pkg1 | embedder4 | f |
| pkg1/promotedStructs.go:5:2:5:7 | SField | codeql-go-types/pkg1 | S | SField |
| pkg1/promotedStructs.go:5:2:5:7 | SField | codeql-go-types/pkg1 | SEmbedS | SField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | codeql-go-types/pkg1 | P | PField |
| pkg1/promotedStructs.go:14:2:14:7 | PField | codeql-go-types/pkg1 | SEmbedP | PField |
| pkg1/promotedStructs.go:22:22:22:22 | S | codeql-go-types/pkg1 | SEmbedS | S |
| pkg1/promotedStructs.go:25:22:25:22 | P | codeql-go-types/pkg1 | SEmbedP | P |
| pkg1/tst.go:6:2:6:2 | f | codeql-go-types/pkg1 | T | f |
| pkg1/tst.go:7:2:7:4 | Foo | codeql-go-types/pkg1 | T | Foo |
| pkg1/tst.go:8:2:8:4 | Bar | codeql-go-types/pkg1 | T | Bar |
| pkg1/tst.go:12:2:12:4 | Foo | codeql-go-types/pkg1 | T2 | Foo |
| pkg1/tst.go:13:2:13:4 | Bar | codeql-go-types/pkg1 | T2 | Bar |
| pkg1/tst.go:17:3:17:5 | Foo | codeql-go-types/pkg1 | T3 | Foo |
| pkg1/tst.go:18:3:18:5 | Bar | codeql-go-types/pkg1 | T3 | Bar |
| pkg1/tst.go:22:3:22:5 | Foo | codeql-go-types/pkg1 | T4 | Foo |
| pkg1/tst.go:23:2:23:4 | Bar | codeql-go-types/pkg1 | T4 | Bar |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1 | Foo | val |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1 | T | val |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1 | T3 | val |
| pkg1/tst.go:27:2:27:4 | val | codeql-go-types/pkg1 | T4 | val |
| pkg1/tst.go:28:2:28:5 | flag | codeql-go-types/pkg1 | Foo | flag |
| pkg1/tst.go:28:2:28:5 | flag | codeql-go-types/pkg1 | T4 | flag |
| pkg1/tst.go:32:2:32:5 | flag | codeql-go-types/pkg1 | Bar | flag |
| pkg1/tst.go:32:2:32:5 | flag | codeql-go-types/pkg1 | T2 | flag |
| pkg1/tst.go:62:7:62:15 | NameClash | codeql-go-types/pkg1 | NameClash | NameClash |
| pkg2/tst.go:4:2:4:2 | g | codeql-go-types/pkg2 | G | g |
| pkg2/tst.go:4:2:4:2 | g | codeql-go-types/pkg2 | T | g |
| pkg2/tst.go:8:2:8:2 | g | codeql-go-types/pkg2 | G | g |
| pkg2/tst.go:8:2:8:2 | g | codeql-go-types/pkg2 | T | g |
| pkg2/tst.go:17:2:17:8 | NCField | codeql-go-types | EmbedsNameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | codeql-go-types/pkg1 | NameClash | NCField |
| pkg2/tst.go:17:2:17:8 | NCField | codeql-go-types/pkg2 | NameClash | NCField |
| struct_tags.go:4:2:4:7 | field1 | codeql-go-types | S1 | field1 |
| struct_tags.go:5:2:5:7 | field2 | codeql-go-types | S1 | field2 |
| struct_tags.go:9:2:9:7 | field1 | codeql-go-types | S2 | field1 |
| struct_tags.go:10:2:10:7 | field2 | codeql-go-types | S2 | field2 |

View File

@@ -1,3 +1,6 @@
| aliases.go:32:38:32:57 | generic type instantiation expression | aliases.go:32:38:32:43 | MyType | 0 | aliases.go:32:45:32:56 | MyTypeAliasT |
| aliases.go:34:23:34:41 | generic type instantiation expression | aliases.go:34:23:34:33 | MyTypeAlias | 0 | aliases.go:34:35:34:40 | string |
| aliases.go:35:7:35:25 | generic type instantiation expression | aliases.go:35:7:35:17 | MyTypeAlias | 0 | aliases.go:35:19:35:24 | string |
| generic.go:12:16:12:40 | generic type instantiation expression | generic.go:12:16:12:37 | CircularGenericStruct1 | 0 | generic.go:12:39:12:39 | T |
| generic.go:16:7:16:31 | generic type instantiation expression | generic.go:16:7:16:28 | CircularGenericStruct1 | 0 | generic.go:16:30:16:30 | T |
| generic.go:20:14:20:30 | generic type instantiation expression | generic.go:20:14:20:27 | GenericStruct1 | 0 | generic.go:20:29:20:29 | S |

View File

@@ -1,3 +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 |
| interface { Exported func() ; notExported func() } | func() | codeql-go-types/pkg1.notExported |
| interface { Exported func() ; notExported func() } | func() | codeql-go-types/pkg2.notExported |

View File

@@ -1,70 +1,70 @@
| generic.go:33:2:33:5 | GetT | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericInterface | GetT |
| generic.go:48:2:48:6 | clone | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | clone |
| generic.go:49:2:49:7 | dummy1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy1 |
| generic.go:50:2:50:7 | dummy2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy2 |
| generic.go:51:2:51:7 | dummy3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy3 |
| generic.go:52:2:52:7 | dummy4 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy4 |
| generic.go:53:2:53:7 | dummy5 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy5 |
| generic.go:54:2:54:7 | dummy6 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy6 |
| generic.go:55:2:55:7 | dummy7 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy7 |
| generic.go:56:2:56:8 | dummy11 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy11 |
| generic.go:57:2:57:8 | dummy12 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy12 |
| generic.go:58:2:58:8 | dummy13 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy13 |
| generic.go:59:2:59:8 | dummy14 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy14 |
| generic.go:60:2:60:8 | dummy15 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy15 |
| generic.go:61:2:61:8 | dummy17 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy17 |
| generic.go:62:2:62:8 | dummy18 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy18 |
| generic.go:63:2:63:8 | dummy19 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy19 |
| generic.go:64:2:64:8 | dummy20 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface | dummy20 |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i6 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i8 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i9 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i14 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i15 | String |
| interface.go:37:2:37:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i7 | String |
| interface.go:43:2:43:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i8 | StringA |
| interface.go:43:2:43:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i14 | StringA |
| interface.go:49:2:49:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i9 | StringB |
| interface.go:49:2:49:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i15 | StringB |
| interface.go:92:2:92:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i17 | StringA |
| interface.go:97:2:97:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i18 | StringA |
| interface.go:102:2:102:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i19 | StringB |
| interface.go:107:2:107:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i20 | StringB |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.base | f |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder | f |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder2 | f |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.ptrembedder | f |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.base | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder2 | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder3 | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder4 | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.ptrembedder | g |
| pkg1/embedding.go:30:18:30:18 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder3 | f |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.A | m |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AC | m |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AEmbedded | m |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AExtended | m |
| pkg1/interfaces.go:8:2:8:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.B | m |
| pkg1/interfaces.go:9:2:9:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.B | n |
| pkg1/interfaces.go:13:2:13:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AC | n |
| pkg1/interfaces.go:13:2:13:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.C | n |
| pkg1/interfaces.go:14:2:14:2 | o | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AC | o |
| 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/promotedStructs.go:8:12:8:18 | SMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.S | SMethod |
| pkg1/promotedStructs.go:8:12:8:18 | SMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedS | SMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.P | PMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedP | PMethod |
| pkg1/tst.go:35:16:35:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Foo | half |
| pkg1/tst.go:35:16:35:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T | half |
| pkg1/tst.go:35:16:35:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T3 | half |
| pkg1/tst.go:35:16:35: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 |
| pkg2/tst.go:20:20:20:27 | NCMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsNameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.NameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.NameClash | NCMethod |
| generic.go:33:2:33:5 | GetT | codeql-go-types.GenericInterface | GetT |
| generic.go:48:2:48:6 | clone | codeql-go-types.MyInterface | clone |
| generic.go:49:2:49:7 | dummy1 | codeql-go-types.MyInterface | dummy1 |
| generic.go:50:2:50:7 | dummy2 | codeql-go-types.MyInterface | dummy2 |
| generic.go:51:2:51:7 | dummy3 | codeql-go-types.MyInterface | dummy3 |
| generic.go:52:2:52:7 | dummy4 | codeql-go-types.MyInterface | dummy4 |
| generic.go:53:2:53:7 | dummy5 | codeql-go-types.MyInterface | dummy5 |
| generic.go:54:2:54:7 | dummy6 | codeql-go-types.MyInterface | dummy6 |
| generic.go:55:2:55:7 | dummy7 | codeql-go-types.MyInterface | dummy7 |
| generic.go:56:2:56:8 | dummy11 | codeql-go-types.MyInterface | dummy11 |
| generic.go:57:2:57:8 | dummy12 | codeql-go-types.MyInterface | dummy12 |
| generic.go:58:2:58:8 | dummy13 | codeql-go-types.MyInterface | dummy13 |
| generic.go:59:2:59:8 | dummy14 | codeql-go-types.MyInterface | dummy14 |
| generic.go:60:2:60:8 | dummy15 | codeql-go-types.MyInterface | dummy15 |
| generic.go:61:2:61:8 | dummy17 | codeql-go-types.MyInterface | dummy17 |
| generic.go:62:2:62:8 | dummy18 | codeql-go-types.MyInterface | dummy18 |
| generic.go:63:2:63:8 | dummy19 | codeql-go-types.MyInterface | dummy19 |
| generic.go:64:2:64:8 | dummy20 | codeql-go-types.MyInterface | dummy20 |
| interface.go:30:2:30:7 | String | codeql-go-types.i6 | String |
| interface.go:30:2:30:7 | String | codeql-go-types.i8 | String |
| interface.go:30:2:30:7 | String | codeql-go-types.i9 | String |
| interface.go:30:2:30:7 | String | codeql-go-types.i14 | String |
| interface.go:30:2:30:7 | String | codeql-go-types.i15 | String |
| interface.go:37:2:37:7 | String | codeql-go-types.i7 | String |
| interface.go:43:2:43:8 | StringA | codeql-go-types.i8 | StringA |
| interface.go:43:2:43:8 | StringA | codeql-go-types.i14 | StringA |
| interface.go:49:2:49:8 | StringB | codeql-go-types.i9 | StringB |
| interface.go:49:2:49:8 | StringB | codeql-go-types.i15 | StringB |
| interface.go:92:2:92:8 | StringA | codeql-go-types.i17 | StringA |
| interface.go:97:2:97:8 | StringA | codeql-go-types.i18 | StringA |
| interface.go:102:2:102:8 | StringB | codeql-go-types.i19 | StringB |
| interface.go:107:2:107:8 | StringB | codeql-go-types.i20 | StringB |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1.base | f |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1.embedder | f |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1.embedder2 | f |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1.ptrembedder | f |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1.base | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1.embedder | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1.embedder2 | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1.embedder3 | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1.embedder4 | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1.ptrembedder | g |
| pkg1/embedding.go:30:18:30:18 | f | codeql-go-types/pkg1.embedder3 | f |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1.A | m |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1.AC | m |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1.AEmbedded | m |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1.AExtended | m |
| pkg1/interfaces.go:8:2:8:2 | m | codeql-go-types/pkg1.B | m |
| pkg1/interfaces.go:9:2:9:2 | n | codeql-go-types/pkg1.B | n |
| pkg1/interfaces.go:13:2:13:2 | n | codeql-go-types/pkg1.AC | n |
| pkg1/interfaces.go:13:2:13:2 | n | codeql-go-types/pkg1.C | n |
| pkg1/interfaces.go:14:2:14:2 | o | codeql-go-types/pkg1.AC | o |
| pkg1/interfaces.go:14:2:14:2 | o | codeql-go-types/pkg1.C | o |
| pkg1/interfaces.go:28:2:28:2 | n | codeql-go-types/pkg1.AExtended | n |
| pkg1/interfaces.go:32:2:32:2 | m | codeql-go-types/pkg1.A2 | m |
| pkg1/interfaces.go:36:2:36:9 | Exported | codeql-go-types/pkg1.MixedExportedAndNot | Exported |
| pkg1/interfaces.go:37:2:37:12 | notExported | codeql-go-types/pkg1.MixedExportedAndNot | notExported |
| pkg1/promotedStructs.go:8:12:8:18 | SMethod | codeql-go-types/pkg1.S | SMethod |
| pkg1/promotedStructs.go:8:12:8:18 | SMethod | codeql-go-types/pkg1.SEmbedS | SMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | codeql-go-types/pkg1.P | PMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | codeql-go-types/pkg1.SEmbedP | PMethod |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1.Foo | half |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1.T | half |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1.T3 | half |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1.T4 | half |
| pkg2/tst.go:12:2:12:9 | Exported | codeql-go-types/pkg2.MixedExportedAndNot | Exported |
| pkg2/tst.go:13:2:13:12 | notExported | codeql-go-types/pkg2.MixedExportedAndNot | notExported |
| pkg2/tst.go:20:20:20:27 | NCMethod | codeql-go-types.EmbedsNameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | codeql-go-types/pkg1.NameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | codeql-go-types/pkg2.NameClash | NCMethod |

View File

@@ -1,70 +1,70 @@
| generic.go:33:2:33:5 | GetT | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | GenericInterface | GetT |
| generic.go:48:2:48:6 | clone | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | clone |
| generic.go:49:2:49:7 | dummy1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy1 |
| generic.go:50:2:50:7 | dummy2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy2 |
| generic.go:51:2:51:7 | dummy3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy3 |
| generic.go:52:2:52:7 | dummy4 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy4 |
| generic.go:53:2:53:7 | dummy5 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy5 |
| generic.go:54:2:54:7 | dummy6 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy6 |
| generic.go:55:2:55:7 | dummy7 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy7 |
| generic.go:56:2:56:8 | dummy11 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy11 |
| generic.go:57:2:57:8 | dummy12 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy12 |
| generic.go:58:2:58:8 | dummy13 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy13 |
| generic.go:59:2:59:8 | dummy14 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy14 |
| generic.go:60:2:60:8 | dummy15 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy15 |
| generic.go:61:2:61:8 | dummy17 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy17 |
| generic.go:62:2:62:8 | dummy18 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy18 |
| generic.go:63:2:63:8 | dummy19 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy19 |
| generic.go:64:2:64:8 | dummy20 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | MyInterface | dummy20 |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i6 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i8 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i9 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i14 | String |
| interface.go:30:2:30:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i15 | String |
| interface.go:37:2:37:7 | String | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i7 | String |
| interface.go:43:2:43:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i8 | StringA |
| interface.go:43:2:43:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i14 | StringA |
| interface.go:49:2:49:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i9 | StringB |
| interface.go:49:2:49:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i15 | StringB |
| interface.go:92:2:92:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i17 | StringA |
| interface.go:97:2:97:8 | StringA | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i18 | StringA |
| interface.go:102:2:102:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i19 | StringB |
| interface.go:107:2:107:8 | StringB | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | i20 | StringB |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | base | f |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder | f |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder2 | f |
| pkg1/embedding.go:10:13:10:13 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | ptrembedder | f |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | base | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder2 | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder3 | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder4 | g |
| pkg1/embedding.go:14:14:14:14 | g | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | ptrembedder | g |
| pkg1/embedding.go:30:18:30:18 | f | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | embedder3 | f |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | A | m |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | AC | m |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | AEmbedded | m |
| pkg1/interfaces.go:4:2:4:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | AExtended | m |
| pkg1/interfaces.go:8:2:8:2 | m | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | B | m |
| pkg1/interfaces.go:9:2:9:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | B | n |
| pkg1/interfaces.go:13:2:13:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | AC | n |
| pkg1/interfaces.go:13:2:13:2 | n | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | C | n |
| pkg1/interfaces.go:14:2:14:2 | o | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | AC | o |
| 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/promotedStructs.go:8:12:8:18 | SMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | S | SMethod |
| pkg1/promotedStructs.go:8:12:8:18 | SMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | SEmbedS | SMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | P | PMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | SEmbedP | PMethod |
| pkg1/tst.go:35:16:35:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | Foo | half |
| pkg1/tst.go:35:16:35:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T | half |
| pkg1/tst.go:35:16:35:19 | half | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | T3 | half |
| pkg1/tst.go:35:16:35: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 |
| pkg2/tst.go:20:20:20:27 | NCMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types | EmbedsNameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1 | NameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2 | NameClash | NCMethod |
| generic.go:33:2:33:5 | GetT | codeql-go-types | GenericInterface | GetT |
| generic.go:48:2:48:6 | clone | codeql-go-types | MyInterface | clone |
| generic.go:49:2:49:7 | dummy1 | codeql-go-types | MyInterface | dummy1 |
| generic.go:50:2:50:7 | dummy2 | codeql-go-types | MyInterface | dummy2 |
| generic.go:51:2:51:7 | dummy3 | codeql-go-types | MyInterface | dummy3 |
| generic.go:52:2:52:7 | dummy4 | codeql-go-types | MyInterface | dummy4 |
| generic.go:53:2:53:7 | dummy5 | codeql-go-types | MyInterface | dummy5 |
| generic.go:54:2:54:7 | dummy6 | codeql-go-types | MyInterface | dummy6 |
| generic.go:55:2:55:7 | dummy7 | codeql-go-types | MyInterface | dummy7 |
| generic.go:56:2:56:8 | dummy11 | codeql-go-types | MyInterface | dummy11 |
| generic.go:57:2:57:8 | dummy12 | codeql-go-types | MyInterface | dummy12 |
| generic.go:58:2:58:8 | dummy13 | codeql-go-types | MyInterface | dummy13 |
| generic.go:59:2:59:8 | dummy14 | codeql-go-types | MyInterface | dummy14 |
| generic.go:60:2:60:8 | dummy15 | codeql-go-types | MyInterface | dummy15 |
| generic.go:61:2:61:8 | dummy17 | codeql-go-types | MyInterface | dummy17 |
| generic.go:62:2:62:8 | dummy18 | codeql-go-types | MyInterface | dummy18 |
| generic.go:63:2:63:8 | dummy19 | codeql-go-types | MyInterface | dummy19 |
| generic.go:64:2:64:8 | dummy20 | codeql-go-types | MyInterface | dummy20 |
| interface.go:30:2:30:7 | String | codeql-go-types | i6 | String |
| interface.go:30:2:30:7 | String | codeql-go-types | i8 | String |
| interface.go:30:2:30:7 | String | codeql-go-types | i9 | String |
| interface.go:30:2:30:7 | String | codeql-go-types | i14 | String |
| interface.go:30:2:30:7 | String | codeql-go-types | i15 | String |
| interface.go:37:2:37:7 | String | codeql-go-types | i7 | String |
| interface.go:43:2:43:8 | StringA | codeql-go-types | i8 | StringA |
| interface.go:43:2:43:8 | StringA | codeql-go-types | i14 | StringA |
| interface.go:49:2:49:8 | StringB | codeql-go-types | i9 | StringB |
| interface.go:49:2:49:8 | StringB | codeql-go-types | i15 | StringB |
| interface.go:92:2:92:8 | StringA | codeql-go-types | i17 | StringA |
| interface.go:97:2:97:8 | StringA | codeql-go-types | i18 | StringA |
| interface.go:102:2:102:8 | StringB | codeql-go-types | i19 | StringB |
| interface.go:107:2:107:8 | StringB | codeql-go-types | i20 | StringB |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1 | base | f |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1 | embedder | f |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1 | embedder2 | f |
| pkg1/embedding.go:10:13:10:13 | f | codeql-go-types/pkg1 | ptrembedder | f |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1 | base | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1 | embedder | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1 | embedder2 | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1 | embedder3 | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1 | embedder4 | g |
| pkg1/embedding.go:14:14:14:14 | g | codeql-go-types/pkg1 | ptrembedder | g |
| pkg1/embedding.go:30:18:30:18 | f | codeql-go-types/pkg1 | embedder3 | f |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1 | A | m |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1 | AC | m |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1 | AEmbedded | m |
| pkg1/interfaces.go:4:2:4:2 | m | codeql-go-types/pkg1 | AExtended | m |
| pkg1/interfaces.go:8:2:8:2 | m | codeql-go-types/pkg1 | B | m |
| pkg1/interfaces.go:9:2:9:2 | n | codeql-go-types/pkg1 | B | n |
| pkg1/interfaces.go:13:2:13:2 | n | codeql-go-types/pkg1 | AC | n |
| pkg1/interfaces.go:13:2:13:2 | n | codeql-go-types/pkg1 | C | n |
| pkg1/interfaces.go:14:2:14:2 | o | codeql-go-types/pkg1 | AC | o |
| pkg1/interfaces.go:14:2:14:2 | o | codeql-go-types/pkg1 | C | o |
| pkg1/interfaces.go:28:2:28:2 | n | codeql-go-types/pkg1 | AExtended | n |
| pkg1/interfaces.go:32:2:32:2 | m | codeql-go-types/pkg1 | A2 | m |
| pkg1/interfaces.go:36:2:36:9 | Exported | codeql-go-types/pkg1 | MixedExportedAndNot | Exported |
| pkg1/interfaces.go:37:2:37:12 | notExported | codeql-go-types/pkg1 | MixedExportedAndNot | notExported |
| pkg1/promotedStructs.go:8:12:8:18 | SMethod | codeql-go-types/pkg1 | S | SMethod |
| pkg1/promotedStructs.go:8:12:8:18 | SMethod | codeql-go-types/pkg1 | SEmbedS | SMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | codeql-go-types/pkg1 | P | PMethod |
| pkg1/promotedStructs.go:17:13:17:19 | PMethod | codeql-go-types/pkg1 | SEmbedP | PMethod |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1 | Foo | half |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1 | T | half |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1 | T3 | half |
| pkg1/tst.go:35:16:35:19 | half | codeql-go-types/pkg1 | T4 | half |
| pkg2/tst.go:12:2:12:9 | Exported | codeql-go-types/pkg2 | MixedExportedAndNot | Exported |
| pkg2/tst.go:13:2:13:12 | notExported | codeql-go-types/pkg2 | MixedExportedAndNot | notExported |
| pkg2/tst.go:20:20:20:27 | NCMethod | codeql-go-types | EmbedsNameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | codeql-go-types/pkg1 | NameClash | NCMethod |
| pkg2/tst.go:20:20:20:27 | NCMethod | codeql-go-types/pkg2 | NameClash | NCMethod |

View File

@@ -1,111 +1,112 @@
| aliases.go:19:6:19:7 | S3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.S3 |
| cyclic.go:3:6:3:6 | s | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.s |
| cyclic.go:7:6:7:6 | t | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.t |
| cyclic.go:12:6:12:6 | u | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.u |
| cyclic.go:16:6:16:6 | v | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.v |
| depth.go:5:6:5:6 | a | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.a |
| depth.go:10:6:10:6 | b | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.b |
| depth.go:14:6:14:6 | c | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.c |
| depth.go:18:6:18:6 | d | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.d |
| embedded.go:3:6:3:8 | Baz | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.Baz |
| embedded.go:7:6:7:8 | Qux | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.Qux |
| embedded.go:11:6:11:14 | EmbedsBaz | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsBaz |
| generic.go:3:6:3:19 | GenericStruct1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct1 |
| generic.go:11:6:11:27 | CircularGenericStruct1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.CircularGenericStruct1 |
| generic.go:15:6:15:31 | UsesCircularGenericStruct1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.UsesCircularGenericStruct1 |
| generic.go:19:6:19:19 | GenericStruct2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct2 |
| generic.go:24:6:24:20 | GenericStruct2b | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericStruct2b |
| generic.go:28:6:28:27 | CircularGenericStruct2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.CircularGenericStruct2 |
| generic.go:32:6:32:21 | GenericInterface | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericInterface |
| generic.go:36:6:36:17 | GenericArray | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericArray |
| generic.go:37:6:37:19 | GenericPointer | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericPointer |
| generic.go:38:6:38:17 | GenericSlice | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericSlice |
| generic.go:39:6:39:16 | GenericMap1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericMap1 |
| generic.go:40:6:40:16 | GenericMap2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericMap2 |
| generic.go:41:6:41:19 | GenericChannel | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericChannel |
| generic.go:42:6:42:14 | MyMapType | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyMapType |
| generic.go:43:6:43:17 | GenericNamed | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericNamed |
| generic.go:44:6:44:16 | MyFuncType1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyFuncType1 |
| generic.go:45:6:45:16 | MyFuncType2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyFuncType2 |
| generic.go:47:6:47:16 | MyInterface | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.MyInterface |
| generic.go:67:6:67:22 | HasBlankTypeParam | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.HasBlankTypeParam |
| generic.go:68:6:68:23 | HasBlankTypeParams | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.HasBlankTypeParams |
| generic.go:84:6:84:21 | GenericSignature | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.GenericSignature |
| interface.go:3:6:3:7 | i0 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i0 |
| interface.go:5:6:5:7 | i1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i1 |
| interface.go:9:6:9:7 | i2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i2 |
| interface.go:13:6:13:7 | i3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i3 |
| interface.go:18:6:18:7 | i4 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i4 |
| interface.go:23:6:23:7 | i5 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i5 |
| interface.go:28:6:28:7 | i6 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i6 |
| interface.go:34:6:34:7 | i7 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i7 |
| interface.go:41:6:41:7 | i8 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i8 |
| interface.go:47:6:47:7 | i9 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i9 |
| interface.go:52:6:52:8 | i10 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i10 |
| interface.go:57:6:57:8 | i11 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i11 |
| interface.go:63:6:63:8 | i12 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i12 |
| interface.go:69:6:69:8 | i13 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i13 |
| interface.go:75:6:75:8 | i14 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i14 |
| interface.go:81:6:81:8 | i15 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i15 |
| interface.go:87:6:87:8 | i16 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i16 |
| interface.go:91:6:91:8 | i17 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i17 |
| interface.go:95:6:95:8 | i18 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i18 |
| interface.go:101:6:101:8 | i19 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i19 |
| interface.go:105:6:105:8 | i20 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.i20 |
| interface.go:114:6:114:19 | testComparable | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable |
| interface.go:115:6:115:20 | testComparable0 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable0 |
| interface.go:116:6:116:20 | testComparable1 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable1 |
| interface.go:117:6:117:20 | testComparable2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable2 |
| interface.go:118:6:118:20 | testComparable3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable3 |
| interface.go:119:6:119:20 | testComparable4 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable4 |
| interface.go:120:6:120:20 | testComparable5 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable5 |
| interface.go:121:6:121:20 | testComparable6 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable6 |
| interface.go:122:6:122:20 | testComparable7 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable7 |
| interface.go:123:6:123:20 | testComparable8 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable8 |
| interface.go:124:6:124:20 | testComparable9 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable9 |
| interface.go:125:6:125:21 | testComparable10 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable10 |
| interface.go:126:6:126:21 | testComparable11 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable11 |
| interface.go:127:6:127:21 | testComparable12 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable12 |
| interface.go:128:6:128:21 | testComparable13 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable13 |
| interface.go:129:6:129:21 | testComparable14 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable14 |
| interface.go:130:6:130:21 | testComparable15 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable15 |
| interface.go:131:6:131:21 | testComparable16 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable16 |
| interface.go:132:6:132:21 | testComparable17 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable17 |
| interface.go:133:6:133:21 | testComparable18 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable18 |
| interface.go:134:6:134:21 | testComparable19 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable19 |
| interface.go:135:6:135:21 | testComparable20 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable20 |
| interface.go:136:6:136:21 | testComparable21 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable21 |
| interface.go:137:6:137:21 | testComparable22 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable22 |
| interface.go:138:6:138:21 | testComparable23 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.testComparable23 |
| main.go:17:6:17:20 | EmbedsNameClash | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types.EmbedsNameClash |
| pkg1/embedding.go:8:6:8:9 | base | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.base |
| pkg1/embedding.go:19:6:19:13 | embedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder |
| pkg1/embedding.go:22:6:22:16 | ptrembedder | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.ptrembedder |
| pkg1/embedding.go:25:6:25:14 | embedder2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder2 |
| pkg1/embedding.go:28:6:28:14 | embedder3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder3 |
| pkg1/embedding.go:35:6:35:14 | embedder4 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.embedder4 |
| pkg1/interfaces.go:3:6:3:6 | A | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.A |
| pkg1/interfaces.go:7:6:7:6 | B | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.B |
| pkg1/interfaces.go:12:6:12:6 | C | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.C |
| pkg1/interfaces.go:17:6:17:14 | AEmbedded | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.AEmbedded |
| 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/promotedStructs.go:4:6:4:6 | S | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.S |
| pkg1/promotedStructs.go:13:6:13:6 | P | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.P |
| pkg1/promotedStructs.go:22:6:22:12 | SEmbedS | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedS |
| pkg1/promotedStructs.go:25:6:25:12 | SEmbedP | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.SEmbedP |
| pkg1/tst.go:5:6:5:6 | T | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T |
| pkg1/tst.go:11:6:11:7 | T2 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T2 |
| pkg1/tst.go:16:6:16:7 | T3 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T3 |
| pkg1/tst.go:21:6:21:7 | T4 | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.T4 |
| pkg1/tst.go:26:6:26:8 | Foo | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Foo |
| pkg1/tst.go:31:6:31:8 | Bar | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.Bar |
| pkg1/tst.go:61:6:61:14 | NameClash | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1.NameClash |
| 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 |
| pkg2/tst.go:16:6:16:14 | NameClash | github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2.NameClash |
| 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 |
| aliases.go:19:6:19:7 | S3 | codeql-go-types.S3 |
| aliases.go:29:6:29:11 | MyType | codeql-go-types.MyType |
| cyclic.go:3:6:3:6 | s | codeql-go-types.s |
| cyclic.go:7:6:7:6 | t | codeql-go-types.t |
| cyclic.go:12:6:12:6 | u | codeql-go-types.u |
| cyclic.go:16:6:16:6 | v | codeql-go-types.v |
| depth.go:5:6:5:6 | a | codeql-go-types.a |
| depth.go:10:6:10:6 | b | codeql-go-types.b |
| depth.go:14:6:14:6 | c | codeql-go-types.c |
| depth.go:18:6:18:6 | d | codeql-go-types.d |
| embedded.go:3:6:3:8 | Baz | codeql-go-types.Baz |
| embedded.go:7:6:7:8 | Qux | codeql-go-types.Qux |
| embedded.go:11:6:11:14 | EmbedsBaz | codeql-go-types.EmbedsBaz |
| generic.go:3:6:3:19 | GenericStruct1 | codeql-go-types.GenericStruct1 |
| generic.go:11:6:11:27 | CircularGenericStruct1 | codeql-go-types.CircularGenericStruct1 |
| generic.go:15:6:15:31 | UsesCircularGenericStruct1 | codeql-go-types.UsesCircularGenericStruct1 |
| generic.go:19:6:19:19 | GenericStruct2 | codeql-go-types.GenericStruct2 |
| generic.go:24:6:24:20 | GenericStruct2b | codeql-go-types.GenericStruct2b |
| generic.go:28:6:28:27 | CircularGenericStruct2 | codeql-go-types.CircularGenericStruct2 |
| generic.go:32:6:32:21 | GenericInterface | codeql-go-types.GenericInterface |
| generic.go:36:6:36:17 | GenericArray | codeql-go-types.GenericArray |
| generic.go:37:6:37:19 | GenericPointer | codeql-go-types.GenericPointer |
| generic.go:38:6:38:17 | GenericSlice | codeql-go-types.GenericSlice |
| generic.go:39:6:39:16 | GenericMap1 | codeql-go-types.GenericMap1 |
| generic.go:40:6:40:16 | GenericMap2 | codeql-go-types.GenericMap2 |
| generic.go:41:6:41:19 | GenericChannel | codeql-go-types.GenericChannel |
| generic.go:42:6:42:14 | MyMapType | codeql-go-types.MyMapType |
| generic.go:43:6:43:17 | GenericNamed | codeql-go-types.GenericNamed |
| generic.go:44:6:44:16 | MyFuncType1 | codeql-go-types.MyFuncType1 |
| generic.go:45:6:45:16 | MyFuncType2 | codeql-go-types.MyFuncType2 |
| generic.go:47:6:47:16 | MyInterface | codeql-go-types.MyInterface |
| generic.go:67:6:67:22 | HasBlankTypeParam | codeql-go-types.HasBlankTypeParam |
| generic.go:68:6:68:23 | HasBlankTypeParams | codeql-go-types.HasBlankTypeParams |
| generic.go:84:6:84:21 | GenericSignature | codeql-go-types.GenericSignature |
| interface.go:3:6:3:7 | i0 | codeql-go-types.i0 |
| interface.go:5:6:5:7 | i1 | codeql-go-types.i1 |
| interface.go:9:6:9:7 | i2 | codeql-go-types.i2 |
| interface.go:13:6:13:7 | i3 | codeql-go-types.i3 |
| interface.go:18:6:18:7 | i4 | codeql-go-types.i4 |
| interface.go:23:6:23:7 | i5 | codeql-go-types.i5 |
| interface.go:28:6:28:7 | i6 | codeql-go-types.i6 |
| interface.go:34:6:34:7 | i7 | codeql-go-types.i7 |
| interface.go:41:6:41:7 | i8 | codeql-go-types.i8 |
| interface.go:47:6:47:7 | i9 | codeql-go-types.i9 |
| interface.go:52:6:52:8 | i10 | codeql-go-types.i10 |
| interface.go:57:6:57:8 | i11 | codeql-go-types.i11 |
| interface.go:63:6:63:8 | i12 | codeql-go-types.i12 |
| interface.go:69:6:69:8 | i13 | codeql-go-types.i13 |
| interface.go:75:6:75:8 | i14 | codeql-go-types.i14 |
| interface.go:81:6:81:8 | i15 | codeql-go-types.i15 |
| interface.go:87:6:87:8 | i16 | codeql-go-types.i16 |
| interface.go:91:6:91:8 | i17 | codeql-go-types.i17 |
| interface.go:95:6:95:8 | i18 | codeql-go-types.i18 |
| interface.go:101:6:101:8 | i19 | codeql-go-types.i19 |
| interface.go:105:6:105:8 | i20 | codeql-go-types.i20 |
| interface.go:114:6:114:19 | testComparable | codeql-go-types.testComparable |
| interface.go:115:6:115:20 | testComparable0 | codeql-go-types.testComparable0 |
| interface.go:116:6:116:20 | testComparable1 | codeql-go-types.testComparable1 |
| interface.go:117:6:117:20 | testComparable2 | codeql-go-types.testComparable2 |
| interface.go:118:6:118:20 | testComparable3 | codeql-go-types.testComparable3 |
| interface.go:119:6:119:20 | testComparable4 | codeql-go-types.testComparable4 |
| interface.go:120:6:120:20 | testComparable5 | codeql-go-types.testComparable5 |
| interface.go:121:6:121:20 | testComparable6 | codeql-go-types.testComparable6 |
| interface.go:122:6:122:20 | testComparable7 | codeql-go-types.testComparable7 |
| interface.go:123:6:123:20 | testComparable8 | codeql-go-types.testComparable8 |
| interface.go:124:6:124:20 | testComparable9 | codeql-go-types.testComparable9 |
| interface.go:125:6:125:21 | testComparable10 | codeql-go-types.testComparable10 |
| interface.go:126:6:126:21 | testComparable11 | codeql-go-types.testComparable11 |
| interface.go:127:6:127:21 | testComparable12 | codeql-go-types.testComparable12 |
| interface.go:128:6:128:21 | testComparable13 | codeql-go-types.testComparable13 |
| interface.go:129:6:129:21 | testComparable14 | codeql-go-types.testComparable14 |
| interface.go:130:6:130:21 | testComparable15 | codeql-go-types.testComparable15 |
| interface.go:131:6:131:21 | testComparable16 | codeql-go-types.testComparable16 |
| interface.go:132:6:132:21 | testComparable17 | codeql-go-types.testComparable17 |
| interface.go:133:6:133:21 | testComparable18 | codeql-go-types.testComparable18 |
| interface.go:134:6:134:21 | testComparable19 | codeql-go-types.testComparable19 |
| interface.go:135:6:135:21 | testComparable20 | codeql-go-types.testComparable20 |
| interface.go:136:6:136:21 | testComparable21 | codeql-go-types.testComparable21 |
| interface.go:137:6:137:21 | testComparable22 | codeql-go-types.testComparable22 |
| interface.go:138:6:138:21 | testComparable23 | codeql-go-types.testComparable23 |
| main.go:17:6:17:20 | EmbedsNameClash | codeql-go-types.EmbedsNameClash |
| pkg1/embedding.go:8:6:8:9 | base | codeql-go-types/pkg1.base |
| pkg1/embedding.go:19:6:19:13 | embedder | codeql-go-types/pkg1.embedder |
| pkg1/embedding.go:22:6:22:16 | ptrembedder | codeql-go-types/pkg1.ptrembedder |
| pkg1/embedding.go:25:6:25:14 | embedder2 | codeql-go-types/pkg1.embedder2 |
| pkg1/embedding.go:28:6:28:14 | embedder3 | codeql-go-types/pkg1.embedder3 |
| pkg1/embedding.go:35:6:35:14 | embedder4 | codeql-go-types/pkg1.embedder4 |
| pkg1/interfaces.go:3:6:3:6 | A | codeql-go-types/pkg1.A |
| pkg1/interfaces.go:7:6:7:6 | B | codeql-go-types/pkg1.B |
| pkg1/interfaces.go:12:6:12:6 | C | codeql-go-types/pkg1.C |
| pkg1/interfaces.go:17:6:17:14 | AEmbedded | codeql-go-types/pkg1.AEmbedded |
| pkg1/interfaces.go:21:6:21:7 | AC | codeql-go-types/pkg1.AC |
| pkg1/interfaces.go:26:6:26:14 | AExtended | codeql-go-types/pkg1.AExtended |
| pkg1/interfaces.go:31:6:31:7 | A2 | codeql-go-types/pkg1.A2 |
| pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | codeql-go-types/pkg1.MixedExportedAndNot |
| pkg1/promotedStructs.go:4:6:4:6 | S | codeql-go-types/pkg1.S |
| pkg1/promotedStructs.go:13:6:13:6 | P | codeql-go-types/pkg1.P |
| pkg1/promotedStructs.go:22:6:22:12 | SEmbedS | codeql-go-types/pkg1.SEmbedS |
| pkg1/promotedStructs.go:25:6:25:12 | SEmbedP | codeql-go-types/pkg1.SEmbedP |
| pkg1/tst.go:5:6:5:6 | T | codeql-go-types/pkg1.T |
| pkg1/tst.go:11:6:11:7 | T2 | codeql-go-types/pkg1.T2 |
| pkg1/tst.go:16:6:16:7 | T3 | codeql-go-types/pkg1.T3 |
| pkg1/tst.go:21:6:21:7 | T4 | codeql-go-types/pkg1.T4 |
| pkg1/tst.go:26:6:26:8 | Foo | codeql-go-types/pkg1.Foo |
| pkg1/tst.go:31:6:31:8 | Bar | codeql-go-types/pkg1.Bar |
| pkg1/tst.go:61:6:61:14 | NameClash | codeql-go-types/pkg1.NameClash |
| pkg2/tst.go:3:6:3:6 | T | codeql-go-types/pkg2.T |
| pkg2/tst.go:7:6:7:6 | G | codeql-go-types/pkg2.G |
| pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | codeql-go-types/pkg2.MixedExportedAndNot |
| pkg2/tst.go:16:6:16:14 | NameClash | codeql-go-types/pkg2.NameClash |
| struct_tags.go:3:6:3:7 | S1 | codeql-go-types.S1 |
| struct_tags.go:8:6:8:7 | S2 | codeql-go-types.S2 |

View File

@@ -1,6 +1,7 @@
| aliases.go:10:1:12:1 | function declaration | 1 |
| aliases.go:14:1:16:1 | function declaration | 1 |
| aliases.go:25:1:27:1 | function declaration | 1 |
| aliases.go:34:1:38:1 | function declaration | 1 |
| depth.go:22:1:25:1 | function declaration | 0 |
| generic.go:70:1:72:1 | function declaration | 1 |
| generic.go:74:1:80:1 | function declaration | 1 |

View File

@@ -1,6 +1,7 @@
| aliases.go:10:1:12:1 | function declaration | 1 |
| aliases.go:14:1:16:1 | function declaration | 1 |
| aliases.go:25:1:27:1 | function declaration | 1 |
| aliases.go:34:1:38:1 | function declaration | 1 |
| depth.go:22:1:25:1 | function declaration | 0 |
| generic.go:70:1:72:1 | function declaration | 1 |
| generic.go:74:1:80:1 | function declaration | 0 |

View File

@@ -1,6 +1,7 @@
| aliases.go:19:6:19:7 | S3 | aliases.go:6:18:6:37 | struct type | x | int |
| aliases.go:19:6:19:7 | S3 | aliases.go:8:18:8:37 | struct type | x | int |
| aliases.go:19:6:19:7 | S3 | aliases.go:19:9:19:23 | struct type | x | int |
| aliases.go:29:6:29:11 | MyType | aliases.go:29:26:29:44 | struct type | x | MyTypeT |
| cyclic.go:3:6:3:6 | s | cyclic.go:3:8:5:1 | struct type | s | * s |
| cyclic.go:7:6:7:6 | t | cyclic.go:7:8:10:1 | struct type | f | int |
| cyclic.go:7:6:7:6 | t | cyclic.go:7:8:10:1 | struct type | t | t |

View File

@@ -1,4 +1,5 @@
| aliases.go:19:6:19:7 | S3 | S3 |
| aliases.go:29:6:29:11 | MyType | MyType |
| cyclic.go:3:6:3:6 | s | s |
| cyclic.go:7:6:7:6 | t | t |
| cyclic.go:12:6:12:6 | u | u |

View File

@@ -25,3 +25,14 @@ type T = S3
func H(Afs3 T) int {
return Afs3.x
}
type MyType[MyTypeT any] struct{ x MyTypeT }
// An alias with a type parameter - added in Go 1.24
type MyTypeAlias[MyTypeAliasT any] = MyType[MyTypeAliasT]
func useMyTypeAlias(a MyTypeAlias[string]) string {
b := MyTypeAlias[string]{x: "hello"}
a.x = b.x
return a.x
}

View File

@@ -0,0 +1,3 @@
module codeql-go-types
go 1.24

View File

@@ -3,7 +3,7 @@ package main
import (
"regexp"
"github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1"
"codeql-go-types/pkg1"
)
func test(r *regexp.Regexp) {}

View File

@@ -1,6 +1,6 @@
package pkg1
import "github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg2"
import "codeql-go-types/pkg2"
type T struct {
f int

View File

@@ -1,6 +1,6 @@
package main
import "github.com/github/codeql-go/ql/test/library-tests/semmle/go/Types/pkg1"
import "codeql-go-types/pkg1"
// IMPORTANT: Make sure that *pkg1.SEmbedP is not referenced.

View File

@@ -1,8 +1,36 @@
#select
| test.go:81:13:81:29 | type conversion | test.go:80:13:80:16 | &... | test.go:81:13:81:29 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:80:13:80:16 | &... | stored value |
| test.go:82:13:82:43 | type conversion | test.go:80:13:80:16 | &... | test.go:82:13:82:43 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:80:13:80:16 | &... | stored value |
| test.go:86:13:86:30 | type conversion | test.go:85:22:85:26 | &... | test.go:86:13:86:30 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:85:22:85:26 | &... | stored value |
| test.go:90:13:90:30 | type conversion | test.go:89:21:89:25 | &... | test.go:90:13:90:30 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:89:21:89:25 | &... | stored value |
| test.go:95:13:95:37 | type conversion | test.go:95:20:95:36 | call to Value | test.go:95:13:95:37 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:95:20:95:36 | call to Value | stored value |
| test.go:96:13:96:49 | type conversion | test.go:96:20:96:39 | call to RawValue | test.go:96:13:96:49 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:96:20:96:39 | call to RawValue | stored value |
| test.go:97:13:97:38 | type conversion | test.go:97:20:97:37 | call to String | test.go:97:13:97:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:97:20:97:37 | call to String | stored value |
| test.go:98:13:98:37 | type conversion | test.go:98:20:98:36 | call to Value | test.go:98:13:98:37 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:98:20:98:36 | call to Value | stored value |
| test.go:99:13:99:49 | type conversion | test.go:99:20:99:39 | call to RawValue | test.go:99:13:99:49 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:99:20:99:39 | call to RawValue | stored value |
| test.go:100:13:100:38 | type conversion | test.go:100:20:100:37 | call to String | test.go:100:13:100:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:100:20:100:37 | call to String | stored value |
| test.go:101:13:101:38 | type conversion | test.go:101:20:101:37 | call to Value | test.go:101:13:101:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:101:20:101:37 | call to Value | stored value |
| test.go:102:13:102:50 | type conversion | test.go:102:20:102:40 | call to RawValue | test.go:102:13:102:50 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:102:20:102:40 | call to RawValue | stored value |
| test.go:103:13:103:39 | type conversion | test.go:103:20:103:38 | call to String | test.go:103:13:103:39 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:103:20:103:38 | call to String | stored value |
| test.go:110:13:110:33 | type conversion | test.go:109:9:109:13 | &... | test.go:110:13:110:33 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:109:9:109:13 | &... | stored value |
| test.go:114:13:114:29 | type conversion | test.go:113:9:113:12 | &... | test.go:114:13:114:29 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:113:9:113:12 | &... | stored value |
| test.go:118:13:118:48 | type conversion | test.go:117:12:117:19 | &... | test.go:118:13:118:48 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:117:12:117:19 | &... | stored value |
| test.go:122:13:122:43 | type conversion | test.go:121:16:121:24 | &... | test.go:122:13:122:43 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:121:16:121:24 | &... | stored value |
| test.go:126:13:126:39 | type conversion | test.go:125:16:125:23 | &... | test.go:126:13:126:39 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:125:16:125:23 | &... | stored value |
| test.go:130:13:130:47 | type conversion | test.go:129:15:129:24 | &... | test.go:130:13:130:47 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:129:15:129:24 | &... | stored value |
| test.go:134:13:134:38 | type conversion | test.go:133:18:133:30 | &... | test.go:134:13:134:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:133:18:133:30 | &... | stored value |
| test.go:141:13:141:48 | type conversion | test.go:140:12:140:19 | &... | test.go:141:13:141:48 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:140:12:140:19 | &... | stored value |
| test.go:145:13:145:43 | type conversion | test.go:144:16:144:24 | &... | test.go:145:13:145:43 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:144:16:144:24 | &... | stored value |
| test.go:149:13:149:39 | type conversion | test.go:148:16:148:23 | &... | test.go:149:13:149:39 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:148:16:148:23 | &... | stored value |
| test.go:153:13:153:47 | type conversion | test.go:152:15:152:24 | &... | test.go:153:13:153:47 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:152:15:152:24 | &... | stored value |
| test.go:157:13:157:38 | type conversion | test.go:156:18:156:30 | &... | test.go:157:13:157:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:156:18:156:30 | &... | stored value |
| test.go:161:13:161:28 | type conversion | test.go:160:14:160:22 | &... | test.go:161:13:161:28 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:160:14:160:22 | &... | stored value |
| test.go:165:13:165:32 | type conversion | test.go:164:15:164:24 | &... | test.go:165:13:165:32 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:164:15:164:24 | &... | stored value |
edges
| test.go:80:13:80:16 | &... | test.go:81:13:81:29 | type conversion | provenance | Src:MaD:339 |
| test.go:80:13:80:16 | &... | test.go:82:13:82:43 | type conversion | provenance | Src:MaD:339 |
| test.go:85:22:85:26 | &... | test.go:86:13:86:30 | type conversion | provenance | Src:MaD:340 |
| test.go:89:21:89:25 | &... | test.go:90:13:90:30 | type conversion | provenance | Src:MaD:341 |
| test.go:80:13:80:16 | &... | test.go:81:13:81:29 | type conversion | provenance | Src:MaD:1 |
| test.go:80:13:80:16 | &... | test.go:82:13:82:43 | type conversion | provenance | Src:MaD:1 |
| test.go:85:22:85:26 | &... | test.go:86:13:86:30 | type conversion | provenance | Src:MaD:2 |
| test.go:89:21:89:25 | &... | test.go:90:13:90:30 | type conversion | provenance | Src:MaD:3 |
| test.go:95:20:95:36 | call to Value | test.go:95:13:95:37 | type conversion | provenance | |
| test.go:96:20:96:39 | call to RawValue | test.go:96:13:96:49 | type conversion | provenance | |
| test.go:97:20:97:37 | call to String | test.go:97:13:97:38 | type conversion | provenance | |
@@ -26,6 +54,10 @@ edges
| test.go:156:18:156:30 | &... | test.go:157:13:157:38 | type conversion | provenance | |
| test.go:160:14:160:22 | &... | test.go:161:13:161:28 | type conversion | provenance | |
| test.go:164:15:164:24 | &... | test.go:165:13:165:32 | type conversion | provenance | |
models
| 1 | Source: group:beego-orm; Ormer; true; Read; ; ; Argument[0]; database; manual |
| 2 | Source: group:beego-orm; Ormer; true; ReadForUpdate; ; ; Argument[0]; database; manual |
| 3 | Source: group:beego-orm; Ormer; true; ReadOrCreate; ; ; Argument[0]; database; manual |
nodes
| test.go:80:13:80:16 | &... | semmle.label | &... |
| test.go:81:13:81:29 | type conversion | semmle.label | type conversion |
@@ -81,31 +113,3 @@ nodes
| test.go:164:15:164:24 | &... | semmle.label | &... |
| test.go:165:13:165:32 | type conversion | semmle.label | type conversion |
subpaths
#select
| test.go:81:13:81:29 | type conversion | test.go:80:13:80:16 | &... | test.go:81:13:81:29 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:80:13:80:16 | &... | stored value |
| test.go:82:13:82:43 | type conversion | test.go:80:13:80:16 | &... | test.go:82:13:82:43 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:80:13:80:16 | &... | stored value |
| test.go:86:13:86:30 | type conversion | test.go:85:22:85:26 | &... | test.go:86:13:86:30 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:85:22:85:26 | &... | stored value |
| test.go:90:13:90:30 | type conversion | test.go:89:21:89:25 | &... | test.go:90:13:90:30 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:89:21:89:25 | &... | stored value |
| test.go:95:13:95:37 | type conversion | test.go:95:20:95:36 | call to Value | test.go:95:13:95:37 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:95:20:95:36 | call to Value | stored value |
| test.go:96:13:96:49 | type conversion | test.go:96:20:96:39 | call to RawValue | test.go:96:13:96:49 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:96:20:96:39 | call to RawValue | stored value |
| test.go:97:13:97:38 | type conversion | test.go:97:20:97:37 | call to String | test.go:97:13:97:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:97:20:97:37 | call to String | stored value |
| test.go:98:13:98:37 | type conversion | test.go:98:20:98:36 | call to Value | test.go:98:13:98:37 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:98:20:98:36 | call to Value | stored value |
| test.go:99:13:99:49 | type conversion | test.go:99:20:99:39 | call to RawValue | test.go:99:13:99:49 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:99:20:99:39 | call to RawValue | stored value |
| test.go:100:13:100:38 | type conversion | test.go:100:20:100:37 | call to String | test.go:100:13:100:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:100:20:100:37 | call to String | stored value |
| test.go:101:13:101:38 | type conversion | test.go:101:20:101:37 | call to Value | test.go:101:13:101:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:101:20:101:37 | call to Value | stored value |
| test.go:102:13:102:50 | type conversion | test.go:102:20:102:40 | call to RawValue | test.go:102:13:102:50 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:102:20:102:40 | call to RawValue | stored value |
| test.go:103:13:103:39 | type conversion | test.go:103:20:103:38 | call to String | test.go:103:13:103:39 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:103:20:103:38 | call to String | stored value |
| test.go:110:13:110:33 | type conversion | test.go:109:9:109:13 | &... | test.go:110:13:110:33 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:109:9:109:13 | &... | stored value |
| test.go:114:13:114:29 | type conversion | test.go:113:9:113:12 | &... | test.go:114:13:114:29 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:113:9:113:12 | &... | stored value |
| test.go:118:13:118:48 | type conversion | test.go:117:12:117:19 | &... | test.go:118:13:118:48 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:117:12:117:19 | &... | stored value |
| test.go:122:13:122:43 | type conversion | test.go:121:16:121:24 | &... | test.go:122:13:122:43 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:121:16:121:24 | &... | stored value |
| test.go:126:13:126:39 | type conversion | test.go:125:16:125:23 | &... | test.go:126:13:126:39 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:125:16:125:23 | &... | stored value |
| test.go:130:13:130:47 | type conversion | test.go:129:15:129:24 | &... | test.go:130:13:130:47 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:129:15:129:24 | &... | stored value |
| test.go:134:13:134:38 | type conversion | test.go:133:18:133:30 | &... | test.go:134:13:134:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:133:18:133:30 | &... | stored value |
| test.go:141:13:141:48 | type conversion | test.go:140:12:140:19 | &... | test.go:141:13:141:48 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:140:12:140:19 | &... | stored value |
| test.go:145:13:145:43 | type conversion | test.go:144:16:144:24 | &... | test.go:145:13:145:43 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:144:16:144:24 | &... | stored value |
| test.go:149:13:149:39 | type conversion | test.go:148:16:148:23 | &... | test.go:149:13:149:39 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:148:16:148:23 | &... | stored value |
| test.go:153:13:153:47 | type conversion | test.go:152:15:152:24 | &... | test.go:153:13:153:47 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:152:15:152:24 | &... | stored value |
| test.go:157:13:157:38 | type conversion | test.go:156:18:156:30 | &... | test.go:157:13:157:38 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:156:18:156:30 | &... | stored value |
| test.go:161:13:161:28 | type conversion | test.go:160:14:160:22 | &... | test.go:161:13:161:28 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:160:14:160:22 | &... | stored value |
| test.go:165:13:165:32 | type conversion | test.go:164:15:164:24 | &... | test.go:165:13:165:32 | type conversion | Stored cross-site scripting vulnerability due to $@. | test.go:164:15:164:24 | &... | stored value |

View File

@@ -1 +1,2 @@
Security/CWE-079/StoredXss.ql
query: Security/CWE-079/StoredXss.ql
postprocess: utils/test/PrettyPrintModels.ql

View File

@@ -1,5 +1,3 @@
// Code generated by https://github.com/gagliardetto/codebox. DO NOT EDIT.
package main
import "encoding"
@@ -30,6 +28,34 @@ func TaintStepTest_EncodingTextUnmarshalerUnmarshalText_B0I0O0(sourceCQL interfa
return intoTextUnmarshaler443
}
func TaintStepTest_EncodingBinaryAppenderAppendBinary_manual1(sourceCQL interface{}) interface{} {
fromBinaryAppender := sourceCQL.(encoding.BinaryAppender)
var arg0 []byte
intoByte, _ := fromBinaryAppender.AppendBinary(arg0)
return intoByte
}
func TaintStepTest_EncodingBinaryAppenderAppendBinary_manual2(sourceCQL interface{}) interface{} {
var recv encoding.BinaryAppender
fromByteSlice := sourceCQL.([]byte)
intoByte, _ := recv.AppendBinary(fromByteSlice)
return intoByte
}
func TaintStepTest_EncodingTextAppenderAppendText_manual1(sourceCQL interface{}) interface{} {
fromTextAppender := sourceCQL.(encoding.TextAppender)
var arg0 []byte
intoByte, _ := fromTextAppender.AppendText(arg0)
return intoByte
}
func TaintStepTest_EncodingTextAppenderAppendText_manual2(sourceCQL interface{}) interface{} {
var recv encoding.TextAppender
fromByteSlice := sourceCQL.([]byte)
intoByte, _ := recv.AppendText(fromByteSlice)
return intoByte
}
func RunAllTaints_Encoding() {
{
source := newSource(0)
@@ -51,4 +77,24 @@ func RunAllTaints_Encoding() {
out := TaintStepTest_EncodingTextUnmarshalerUnmarshalText_B0I0O0(source)
sink(3, out)
}
{
source := newSource(4)
out := TaintStepTest_EncodingBinaryAppenderAppendBinary_manual1(source)
sink(4, out)
}
{
source := newSource(5)
out := TaintStepTest_EncodingBinaryAppenderAppendBinary_manual2(source)
sink(5, out)
}
{
source := newSource(6)
out := TaintStepTest_EncodingTextAppenderAppendText_manual1(source)
sink(6, out)
}
{
source := newSource(7)
out := TaintStepTest_EncodingTextAppenderAppendText_manual2(source)
sink(7, out)
}
}

View File

@@ -0,0 +1,27 @@
package main
import "weak"
func TaintStepTest_WeakMake_manual(sourceCQL interface{}) interface{} {
fromStringPointer := sourceCQL.(*string)
intoWeakPointer := weak.Make(fromStringPointer)
return intoWeakPointer
}
func TaintStepTest_WeakValue_manual(sourceCQL interface{}) interface{} {
fromWeakPointer := sourceCQL.(weak.Pointer[string])
intoStringPointer := fromWeakPointer.Value()
return intoStringPointer
}
func RunAllTaints_Weak() {
{
source := newSource(0)
out := TaintStepTest_WeakMake_manual(source)
sink(0, out)
}
{
source := newSource(1)
out := TaintStepTest_WeakValue_manual(source)
sink(1, out)
}
}

View File

@@ -1,6 +1,6 @@
module example.com/m
go 1.23
go 1.24
require (
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb

View File

@@ -5,4 +5,4 @@
| bad.go:3:5:3:5 | expected 'IDENT', found newline |
| bad.go:5:1:5:1 | expected ';', found wnvwun |
| badimport.go:6:2:6:2 | invalid import path (invalid character U+007B '{') |
| type.go:11:9:11:9 | cannot use v (variable of type V) as T value in argument to takesT |
| type.go:11:9:11:9 | cannot use v (variable of int type V) as T value in argument to takesT |

View File

@@ -1,5 +1,5 @@
| Extraction failed in badimport.go with error invalid import path (invalid character U+007B '{') | 2 |
| Extraction failed in type.go with error cannot use v (variable of type V) as T value in argument to takesT | 2 |
| Extraction failed in type.go with error cannot use v (variable of int type V) as T value in argument to takesT | 2 |
| Extraction failed with error expected ';', found wnvwun | 2 |
| Extraction failed with error expected 'IDENT', found newline | 2 |
| Extraction failed with error expected 'package', found avvu | 2 |

View File

@@ -2,4 +2,4 @@
| duplicates.js:6:33:6:56 | functio ... up2b){} | This function has a duplicate dependency $@. | duplicates.js:6:24:6:30 | 'dup2a' | dup2a |
| duplicates.js:7:33:7:56 | functio ... up3b){} | This function has a duplicate dependency $@. | duplicates.js:7:24:7:30 | 'dup3b' | dup3b |
| duplicates.js:8:43:8:78 | functio ... up4C){} | This function has a duplicate dependency $@. | duplicates.js:8:35:8:40 | 'dup4' | dup4 |
| duplicates.js:15:35:15:112 | functio ... } | This function has a duplicate dependency $@. | duplicates.js:15:25:15:32 | 'dup11a' | dup11a |
| duplicates.js:15:35:15:113 | functio ... } | This function has a duplicate dependency $@. | duplicates.js:15:25:15:32 | 'dup11a' | dup11a |

View File

@@ -1 +1,2 @@
AngularJS/DuplicateDependency.ql
query: AngularJS/DuplicateDependency.ql
postprocess: utils/test/InlineExpectationsTestQuery.ql

View File

@@ -1,18 +1,18 @@
(function(){
function f(){}
f.$inject = ['dup5', 'dup5']; // NOT OK
function f(){} // $ Alert
f.$inject = ['dup5', 'dup5'];
angular.module('myModule', [])
.run(['dup1a', 'dup1a', function(dup1a, dup1a){}]) // OK (flagged by js/duplicate-parameter-name)
.run(['dup2a', 'dup2a', function(dup2a, dup2b){}]) // NOT OK
.run(['dup3b', 'dup3b', function(dup3a, dup3b){}]) // NOT OK
.run(['dup4', 'notDup4A', 'dup4', function(notDup4B, dup4, notDup4C){}]) // NOT OK
.run(['dup1a', 'dup1a', function(dup1a, dup1a){}]) // OK - flagged by js/duplicate-parameter-name
.run(['dup2a', 'dup2a', function(dup2a, dup2b){}]) // $ Alert
.run(['dup3b', 'dup3b', function(dup3a, dup3b){}]) // $ Alert
.run(['dup4', 'notDup4A', 'dup4', function(notDup4B, dup4, notDup4C){}]) // $ Alert
.run(f)
.run(function(dup6, dup6){})// OK (flagged by js/duplicate-parameter-name)
.run(function(notDup7a, notDup7b){}) // OK
.run(['notDup8a', 'notDup8b', function(notDup8a, notDup8b){}]) // OK
.run(['notDup9a', 'notDup9b', function(notDup9c, notDup9d){}]) // OK
.run(['dup10a', 'dup10a', 'dup10a', function(dup10a, dup10a, dup10a){}]) // OK (flagged by js/duplicate-parameter-name)
.run(['dup11a', 'dup11a', function(dup11a, dup11b){ // NOT OK (alert formatting for multi-line function)
.run(function(dup6, dup6){})// OK - flagged by js/duplicate-parameter-name
.run(function(notDup7a, notDup7b){})
.run(['notDup8a', 'notDup8b', function(notDup8a, notDup8b){}])
.run(['notDup9a', 'notDup9b', function(notDup9c, notDup9d){}])
.run(['dup10a', 'dup10a', 'dup10a', function(dup10a, dup10a, dup10a){}]) // OK - flagged by js/duplicate-parameter-name
.run(['dup11a', 'dup11a', function(dup11a, dup11b){ // $ Alert - alert formatting for multi-line function
}])
;
})();

View File

@@ -11,13 +11,6 @@ extensions:
- ["lang:core", "crate::iter::traits::iterator::Iterator::nth", "Argument[self].Element", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "manual"]
- ["lang:core", "crate::iter::traits::iterator::Iterator::collect", "Argument[self].Element", "ReturnValue.Element", "value", "manual"]
# Option
- ["lang:core", "<crate::option::Option>::unwrap", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "manual"]
- ["lang:core", "<crate::option::Option>::unwrap_or", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "manual"]
- ["lang:core", "<crate::option::Option>::unwrap_or", "Argument[0]", "ReturnValue", "value", "manual"]
- ["lang:core", "<crate::option::Option>::unwrap_or_default", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "manual"]
- ["lang:core", "<crate::option::Option>::unwrap_or_else", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "manual"]
- ["lang:core", "<crate::option::Option>::unwrap_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "manual"]
- ["lang:core", "<crate::option::Option>::unwrap_unchecked", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "manual"]
- ["lang:core", "<crate::option::Option>::expect", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "manual"]
# Result
- ["lang:core", "<crate::result::Result>::unwrap", "Argument[self].Variant[crate::result::Result::Ok(0)]", "ReturnValue", "value", "manual"]

View File

@@ -0,0 +1,65 @@
# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT.
extensions:
- addsTo:
pack: codeql/rust-all
extensible: summaryModel
data:
- ["lang:core", "<crate::option::Option as crate::clone::Clone>::clone", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option as crate::convert::From>::from", "Argument[0].Reference.Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option as crate::convert::From>::from", "Argument[0]", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::and", "Argument[0]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::and_then", "Argument[self].Variant[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::as_mut", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::as_ref", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::cloned", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::copied", "Argument[self].Variant[crate::option::Option::Some(0)].Reference", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::flatten", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::get_or_insert", "Argument[0]", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::get_or_insert", "Argument[0]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::get_or_insert", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::get_or_insert_default", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::get_or_insert_with", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::insert", "Argument[0]", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::insert", "Argument[0]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::insert", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::inspect", "Argument[self]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::is_none_or", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::is_none_or", "Argument[self].Variant[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::is_some_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::is_some_and", "Argument[self].Variant[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map", "Argument[0].ReturnValue", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map", "Argument[self].Variant[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map_or", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map_or", "Argument[self].Variant[crate::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map_or_else", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::map_or_else", "Argument[self].Variant[crate::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::ok_or", "Argument[0]", "ReturnValue.Variant[crate::result::Result::Err(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::ok_or", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::result::Result::Ok(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::ok_or_else", "Argument[0].ReturnValue", "ReturnValue.Variant[crate::result::Result::Err(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::ok_or_else", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::result::Result::Ok(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::or_else", "Argument[self]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::take_if", "Argument[self].Reference.Variant[crate::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::transpose", "Argument[self].Variant[crate::option::Option::Some(0)].Variant[crate::result::Result::Err(0)]", "ReturnValue.Variant[crate::result::Result::Err(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::transpose", "Argument[self].Variant[crate::option::Option::Some(0)].Variant[crate::result::Result::Ok(0)]", "ReturnValue.Variant[crate::result::Result::Ok(0)].Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unwrap", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unwrap_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unwrap_or", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unwrap_or_default", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unwrap_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unwrap_or_else", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unwrap_unchecked", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unzip", "Argument[self].Variant[crate::option::Option::Some(0)].Tuple[0]", "ReturnValue.Tuple[0].Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::unzip", "Argument[self].Variant[crate::option::Option::Some(0)].Tuple[1]", "ReturnValue.Tuple[1].Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::xor", "Argument[0]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::xor", "Argument[self]", "ReturnValue", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::zip", "Argument[0].Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::option::Option::Some(0)].Tuple[1]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::zip", "Argument[self].Variant[crate::option::Option::Some(0)]", "ReturnValue.Variant[crate::option::Option::Some(0)].Tuple[0]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::zip_with", "Argument[0].Variant[crate::option::Option::Some(0)]", "Argument[1].Parameter[1]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::zip_with", "Argument[1].ReturnValue", "ReturnValue.Variant[crate::option::Option::Some(0)]", "value", "dfc-generated"]
- ["lang:core", "<crate::option::Option>::zip_with", "Argument[self].Variant[crate::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"]

View File

@@ -1,7 +1,8 @@
models
| 1 | Summary: lang:core; <crate::option::Option as crate::clone::Clone>::clone; Argument[self].Variant[crate::option::Option::Some(0)]; ReturnValue.Variant[crate::option::Option::Some(0)]; value |
| 2 | Summary: lang:core; <crate::option::Option>::unwrap; Argument[self].Variant[crate::option::Option::Some(0)]; ReturnValue; value |
| 3 | Summary: lang:core; <crate::result::Result>::unwrap; Argument[self].Variant[crate::result::Result::Ok(0)]; ReturnValue; value |
| 3 | Summary: lang:core; <crate::option::Option>::zip; Argument[0].Variant[crate::option::Option::Some(0)]; ReturnValue.Variant[crate::option::Option::Some(0)].Tuple[1]; value |
| 4 | Summary: lang:core; <crate::result::Result>::unwrap; Argument[self].Variant[crate::result::Result::Ok(0)]; ReturnValue; value |
edges
| main.rs:13:9:13:9 | a [Some] | main.rs:14:10:14:10 | a [Some] | provenance | |
| main.rs:13:9:13:9 | a [Some] | main.rs:15:13:15:13 | a [Some] | provenance | |
@@ -16,11 +17,11 @@ edges
| main.rs:20:9:20:9 | a [Ok] | main.rs:22:13:22:13 | a [Ok] | provenance | |
| main.rs:20:31:20:44 | Ok(...) [Ok] | main.rs:20:9:20:9 | a [Ok] | provenance | |
| main.rs:20:34:20:43 | source(...) | main.rs:20:31:20:44 | Ok(...) [Ok] | provenance | |
| main.rs:21:10:21:10 | a [Ok] | main.rs:21:10:21:19 | a.unwrap(...) | provenance | MaD:3 |
| main.rs:21:10:21:10 | a [Ok] | main.rs:21:10:21:19 | a.unwrap(...) | provenance | MaD:4 |
| main.rs:22:9:22:9 | b [Ok] | main.rs:23:10:23:10 | b [Ok] | provenance | |
| main.rs:22:13:22:13 | a [Ok] | main.rs:22:13:22:21 | a.clone(...) [Ok] | provenance | |
| main.rs:22:13:22:21 | a.clone(...) [Ok] | main.rs:22:9:22:9 | b [Ok] | provenance | |
| main.rs:23:10:23:10 | b [Ok] | main.rs:23:10:23:19 | b.unwrap(...) | provenance | MaD:3 |
| main.rs:23:10:23:10 | b [Ok] | main.rs:23:10:23:19 | b.unwrap(...) | provenance | MaD:4 |
| main.rs:27:9:27:9 | a | main.rs:28:10:28:10 | a | provenance | |
| main.rs:27:9:27:9 | a | main.rs:29:13:29:13 | a | provenance | |
| main.rs:27:13:27:22 | source(...) | main.rs:27:9:27:9 | a | provenance | |
@@ -40,6 +41,16 @@ edges
| main.rs:47:15:47:15 | u [Wrapper] | main.rs:48:13:48:28 | Wrapper {...} [Wrapper] | provenance | |
| main.rs:48:13:48:28 | Wrapper {...} [Wrapper] | main.rs:48:26:48:26 | n | provenance | |
| main.rs:48:26:48:26 | n | main.rs:48:38:48:38 | n | provenance | |
| main.rs:59:13:59:13 | b [Some] | main.rs:60:23:60:23 | b [Some] | provenance | |
| main.rs:59:17:59:32 | Some(...) [Some] | main.rs:59:13:59:13 | b [Some] | provenance | |
| main.rs:59:22:59:31 | source(...) | main.rs:59:17:59:32 | Some(...) [Some] | provenance | |
| main.rs:60:13:60:13 | z [Some, tuple.1] | main.rs:61:15:61:15 | z [Some, tuple.1] | provenance | |
| main.rs:60:17:60:24 | a.zip(...) [Some, tuple.1] | main.rs:60:13:60:13 | z [Some, tuple.1] | provenance | |
| main.rs:60:23:60:23 | b [Some] | main.rs:60:17:60:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:3 |
| main.rs:61:15:61:15 | z [Some, tuple.1] | main.rs:62:13:62:24 | Some(...) [Some, tuple.1] | provenance | |
| main.rs:62:13:62:24 | Some(...) [Some, tuple.1] | main.rs:62:18:62:23 | TuplePat [tuple.1] | provenance | |
| main.rs:62:18:62:23 | TuplePat [tuple.1] | main.rs:62:22:62:22 | m | provenance | |
| main.rs:62:22:62:22 | m | main.rs:64:22:64:22 | m | provenance | |
nodes
| main.rs:13:9:13:9 | a [Some] | semmle.label | a [Some] |
| main.rs:13:13:13:28 | Some(...) [Some] | semmle.label | Some(...) [Some] |
@@ -82,6 +93,17 @@ nodes
| main.rs:48:13:48:28 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] |
| main.rs:48:26:48:26 | n | semmle.label | n |
| main.rs:48:38:48:38 | n | semmle.label | n |
| main.rs:59:13:59:13 | b [Some] | semmle.label | b [Some] |
| main.rs:59:17:59:32 | Some(...) [Some] | semmle.label | Some(...) [Some] |
| main.rs:59:22:59:31 | source(...) | semmle.label | source(...) |
| main.rs:60:13:60:13 | z [Some, tuple.1] | semmle.label | z [Some, tuple.1] |
| main.rs:60:17:60:24 | a.zip(...) [Some, tuple.1] | semmle.label | a.zip(...) [Some, tuple.1] |
| main.rs:60:23:60:23 | b [Some] | semmle.label | b [Some] |
| main.rs:61:15:61:15 | z [Some, tuple.1] | semmle.label | z [Some, tuple.1] |
| main.rs:62:13:62:24 | Some(...) [Some, tuple.1] | semmle.label | Some(...) [Some, tuple.1] |
| main.rs:62:18:62:23 | TuplePat [tuple.1] | semmle.label | TuplePat [tuple.1] |
| main.rs:62:22:62:22 | m | semmle.label | m |
| main.rs:64:22:64:22 | m | semmle.label | m |
subpaths
testFailures
#select
@@ -93,3 +115,4 @@ testFailures
| main.rs:30:10:30:10 | b | main.rs:27:13:27:22 | source(...) | main.rs:30:10:30:10 | b | $@ | main.rs:27:13:27:22 | source(...) | source(...) |
| main.rs:44:38:44:38 | n | main.rs:42:30:42:39 | source(...) | main.rs:44:38:44:38 | n | $@ | main.rs:42:30:42:39 | source(...) | source(...) |
| main.rs:48:38:48:38 | n | main.rs:42:30:42:39 | source(...) | main.rs:48:38:48:38 | n | $@ | main.rs:42:30:42:39 | source(...) | source(...) |
| main.rs:64:22:64:22 | m | main.rs:59:22:59:31 | source(...) | main.rs:64:22:64:22 | m | $@ | main.rs:59:22:59:31 | source(...) | source(...) |

View File

@@ -50,6 +50,30 @@ mod my_clone {
}
}
mod flow_through_option {
use super::{source, sink};
// Test the auto generated flow summaries for `Option`
fn zip_flow() {
let a = Some(2);
let b = Some(source(38));
let z = a.zip(b);
match z {
Some((n, m)) => {
sink(n);
sink(m); // $ hasValueFlow=38
},
None => ()
}
}
fn higher_order_flow() {
let a = Some(0);
let b = a.map_or(3, |n| n + source(63));
sink(b); // $ hasTaintFlow=63
}
}
fn main() {
option_clone();
result_clone();

View File

@@ -643,12 +643,103 @@ module TestPostProcessing {
module Make<InlineExpectationsTestSig Input, InputSig<Input> Input2> {
private import InlineExpectationsTest as InlineExpectationsTest
private import InlineExpectationsTest::Make<Input>
bindingset[loc]
private predicate parseLocationString(
string loc, string relativePath, int sl, int sc, int el, int ec
) {
relativePath = loc.splitAt(":", 0) and
sl = loc.splitAt(":", 1).toInt() and
sc = loc.splitAt(":", 2).toInt() and
el = loc.splitAt(":", 3).toInt() and
ec = loc.splitAt(":", 4).toInt()
}
pragma[nomagic]
private string getRelativePathTo(string absolutePath) {
exists(Input::Location loc |
loc.hasLocationInfo(absolutePath, _, _, _, _) and
parseLocationString(Input2::getRelativeUrl(loc), result, _, _, _, _)
)
}
private newtype TTestLocation =
MkInputLocation(Input::Location loc) or
MkResultLocation(string relativePath, int sl, int sc, int el, int ec) {
exists(string data |
queryResults(_, _, _, data) and
parseLocationString(data, relativePath, sl, sc, el, ec) and
not Input2::getRelativeUrl(_) = data // avoid duplicate locations
)
}
/**
* A location that is either an `Input::Location` or a location from an alert.
*
* We use this location type to support queries that select a location that does not correspond
* to an instance of `Input::Location`.
*/
abstract private class TestLocationImpl extends TTestLocation {
string getAbsoluteFile() { this.hasLocationInfo(result, _, _, _, _) }
int getStartLine() { this.hasLocationInfo(_, result, _, _, _) }
int getStartColumn() { this.hasLocationInfo(_, _, result, _, _) }
int getEndLine() { this.hasLocationInfo(_, _, _, result, _) }
int getEndColumn() { this.hasLocationInfo(_, _, _, _, result) }
abstract string getRelativeUrl();
final string toString() { result = this.getRelativeUrl() }
abstract predicate hasLocationInfo(string file, int sl, int sc, int el, int ec);
}
private class LocationFromResult extends TestLocationImpl, MkResultLocation {
override string getRelativeUrl() {
exists(string file, int sl, int sc, int el, int ec |
this = MkResultLocation(file, sl, sc, el, ec) and
result = file + ":" + sl + ":" + sc + ":" + el + ":" + ec
)
}
override predicate hasLocationInfo(string file, int sl, int sc, int el, int ec) {
this = MkResultLocation(getRelativePathTo(file), sl, sc, el, ec)
}
}
private class LocationFromInput extends TestLocationImpl, MkInputLocation {
private Input::Location loc;
LocationFromInput() { this = MkInputLocation(loc) }
override string getRelativeUrl() { result = Input2::getRelativeUrl(loc) }
override predicate hasLocationInfo(string file, int sl, int sc, int el, int ec) {
loc.hasLocationInfo(file, sl, sc, el, ec)
}
}
final class TestLocation = TestLocationImpl;
module TestImpl2 implements InlineExpectationsTestSig {
final class Location = TestLocation;
final private class ExpectationCommentFinal = Input::ExpectationComment;
class ExpectationComment extends ExpectationCommentFinal {
Location getLocation() { result = MkInputLocation(super.getLocation()) }
}
}
private import InlineExpectationsTest::Make<TestImpl2>
/** Holds if the given locations refer to the same lines, but possibly with different column numbers. */
bindingset[loc1, loc2]
pragma[inline_late]
private predicate sameLineInfo(Input::Location loc1, Input::Location loc2) {
private predicate sameLineInfo(TestLocation loc1, TestLocation loc2) {
exists(string file, int line1, int line2 |
loc1.hasLocationInfo(file, line1, _, line2, _) and
loc2.hasLocationInfo(file, line1, _, line2, _)
@@ -656,8 +747,8 @@ module TestPostProcessing {
}
pragma[nomagic]
private predicate mainQueryResult(int row, int column, Input::Location loc) {
queryResults(mainResultSet(), row, column, Input2::getRelativeUrl(loc))
private predicate mainQueryResult(int row, int column, TestLocation loc) {
queryResults(mainResultSet(), row, column, loc.getRelativeUrl())
}
/**
@@ -668,7 +759,7 @@ module TestPostProcessing {
*/
private string getSourceTag(int row) {
getQueryKind() = "path-problem" and
exists(Input::Location sourceLoc, Input::Location selectLoc |
exists(TestLocation sourceLoc, TestLocation selectLoc |
mainQueryResult(row, 0, selectLoc) and
mainQueryResult(row, 2, sourceLoc) and
if sameLineInfo(selectLoc, sourceLoc) then result = "Alert" else result = "Source"
@@ -733,7 +824,7 @@ module TestPostProcessing {
}
additional predicate hasPathProblemSource(
int row, Input::Location location, string element, string tag, string value
int row, TestLocation location, string element, string tag, string value
) {
getQueryKind() = "path-problem" and
mainQueryResult(row, 2, location) and
@@ -742,7 +833,7 @@ module TestPostProcessing {
value = ""
}
predicate hasActualResult(Input::Location location, string element, string tag, string value) {
predicate hasActualResult(TestLocation location, string element, string tag, string value) {
hasPathProblemSource(_, location, element, tag, value)
}
}
@@ -770,7 +861,7 @@ module TestPostProcessing {
private predicate hasPathProblemSource = PathProblemSourceTestInput::hasPathProblemSource/5;
private predicate hasPathProblemSink(
int row, Input::Location location, string element, string tag
int row, TestLocation location, string element, string tag
) {
getQueryKind() = "path-problem" and
mainQueryResult(row, 4, location) and
@@ -778,7 +869,7 @@ module TestPostProcessing {
tag = getSinkTag(row)
}
private predicate hasAlert(int row, Input::Location location, string element, string tag) {
private predicate hasAlert(int row, TestLocation location, string element, string tag) {
getQueryKind() = ["problem", "path-problem"] and
mainQueryResult(row, 0, location) and
queryResults(mainResultSet(), row, 2, element) and
@@ -793,7 +884,7 @@ module TestPostProcessing {
* present).
*/
private string getValue(int row) {
exists(Input::Location location, string element, string tag, string val |
exists(TestLocation location, string element, string tag, string val |
hasPathProblemSource(row, location, element, tag, val) and
result =
PathProblemSourceTest::getAMatchingExpectation(location, element, tag, val, false)
@@ -801,7 +892,7 @@ module TestPostProcessing {
)
}
predicate hasActualResult(Input::Location location, string element, string tag, string value) {
predicate hasActualResult(TestLocation location, string element, string tag, string value) {
exists(int row |
hasPathProblemSource(row, location, element, tag, _)
or
@@ -840,7 +931,7 @@ module TestPostProcessing {
rankedTestFailures(row, f) and
f = MkTestFailure(fl, message)
|
column = 0 and data = Input2::getRelativeUrl(fl.getLocation())
column = 0 and data = fl.getLocation().getRelativeUrl()
or
column = 1 and data = fl.toString()
or