Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
a8c1b79
Go: Update dbscheme for aliases
mbg Aug 16, 2024
00a5cec
Go: Extract type aliases
mbg Aug 16, 2024
6d61693
Go: Extract alias names
mbg Aug 16, 2024
cede0e2
Go: Fix formatting and documentation of `AliasType`
mbg Aug 16, 2024
5d86410
Go: Update `AliasType` to implement `getUnderlyingType`
mbg Aug 19, 2024
3e061e4
Go: Extract objects for aliases
mbg Aug 19, 2024
4141b17
Factor out `extractTypeObject`
owen-mc Aug 21, 2024
5086ee3
Fix alias use in HTML template escaping passthrough
owen-mc Aug 20, 2024
6356e55
Use unique type param names in test
owen-mc Aug 20, 2024
0202ddf
Fix syntax error in test
owen-mc Aug 21, 2024
8c88bc3
Improve `AliasType.getUnderlyingType`
owen-mc Aug 21, 2024
433e11d
Update labels for alias types
owen-mc Aug 22, 2024
68ad213
Add change note
owen-mc Aug 22, 2024
84686eb
Look through aliases in hasOwnField
smowton Aug 26, 2024
8a85026
Implement deep unaliasing, and use it in interface dispatch resolution
smowton Aug 26, 2024
5e9bd1a
Transparent aliases: don't look through named types
smowton Aug 28, 2024
75afc1b
Transparent aliases: don't write an invalid type to the @types table …
smowton Aug 28, 2024
62ab941
Distinguish types with and without explicit aliases in the type-label…
smowton Aug 28, 2024
4411ba9
Fix Mongodb additional taint step
smowton Aug 29, 2024
713c9c9
Don't repeat parts of extractType that populate tracking tables
smowton Aug 29, 2024
f0bcd59
Fix flow through pointer types related by aliasing
smowton Aug 29, 2024
00d738d
Fix missed case
smowton Aug 29, 2024
acefdbd
Improve efficiency of composite-type deep-unalias computation
smowton Aug 30, 2024
f71b9e8
Make deep-unalias computation even more efficient using unpack routines
smowton Aug 30, 2024
ef3515c
Only extract transparent-alias versions of types when necessary
smowton Aug 31, 2024
df77477
Fix struct deepUnaliasedType predicate
smowton Sep 1, 2024
707f10d
Implement deep-unalias for interface types
smowton Sep 1, 2024
3c5e7ab
Fix TupleType's getDeepUnaliasedType, and make it efficient
smowton Sep 1, 2024
94a6373
autoformat and tidy an unnecessary direct db relation use
smowton Sep 1, 2024
f837504
Interface unaliasing: don't confuse the empty interface with the type…
smowton Sep 1, 2024
14ef824
Ensure fields are created for de-aliased struct types
smowton Sep 2, 2024
84d7828
Interface types: distinguish otherwise-identical interfaces with non-…
owen-mc Dec 11, 2024
ad227e3
Upgrade/downgrade scripts
owen-mc Dec 11, 2024
a602fec
Accept test changes
owen-mc Dec 13, 2024
48d53f4
Make four predicates private
owen-mc Dec 13, 2024
727c19c
Fix bug with empty struct tags
owen-mc Jan 21, 2025
df7a54b
Be more careful about type equivalence up to aliasing in read steps
owen-mc Jan 22, 2025
0a91a9d
Fix test to gave almost the same results
owen-mc Jan 24, 2025
f4dce0d
Make comment clearer
owen-mc Jan 24, 2025
b8724f7
Accept expected test result
owen-mc Jan 24, 2025
38831f2
Fix bug re: methods defined via aliases
owen-mc Jan 24, 2025
d53d024
Update test to avoid duplicates
owen-mc Jan 24, 2025
2330145
Changed test expectations to investigate
owen-mc Jan 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

552 changes: 552 additions & 0 deletions go/downgrades/20cbf29a08034a40b49ab41c26f37a710de32857/go.dbscheme

Large diffs are not rendered by default.

555 changes: 555 additions & 0 deletions go/downgrades/20cbf29a08034a40b49ab41c26f37a710de32857/old.dbscheme

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
description: Remove support for type aliases
compatibility: full

alias_rhs.rel: delete
array_length.rel: run explicit_aliases_downgrade.qlo new_array_length
base_type.rel: run explicit_aliases_downgrade.qlo new_base_type
component_types.rel: run explicit_aliases_downgrade.qlo new_component_types
defs.rel: run explicit_aliases_downgrade.qlo new_defs
element_type.rel: run explicit_aliases_downgrade.qlo new_element_type
fieldstructs.rel: run explicit_aliases_downgrade.qlo new_fieldstructs
key_type.rel: run explicit_aliases_downgrade.qlo new_key_type
objects.rel: run explicit_aliases_downgrade.qlo new_objects
objecttypes.rel: run explicit_aliases_downgrade.qlo new_objecttypes
type_objects.rel: run explicit_aliases_downgrade.qlo new_type_objects
type_of.rel: run explicit_aliases_downgrade.qlo new_type_of
typename.rel: run explicit_aliases_downgrade.qlo new_typename
typeparam.rel: run explicit_aliases_downgrade.qlo new_typeparam
types.rel: run explicit_aliases_downgrade.qlo new_types
underlying_type.rel: run explicit_aliases_downgrade.qlo new_underlying_type
uses.rel: run explicit_aliases_downgrade.qlo new_uses
variadic.rel: run explicit_aliases_downgrade.qlo new_variadic
9 changes: 9 additions & 0 deletions go/extractor/dbscheme/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,9 @@ var NamedType = TypeKind.NewBranch("@namedtype", CompositeType)
// TypeSetLiteral is the type of type set literals
var TypeSetLiteral = TypeKind.NewBranch("@typesetliteraltype", CompositeType)

// TypeAlias is the type of type aliases
var TypeAlias = TypeKind.NewBranch("@typealias", CompositeType)

// PackageType is the type of packages
var PackageType = NewPrimaryKeyType("@package")

Expand Down Expand Up @@ -1142,6 +1145,12 @@ var UnderlyingTypeTable = NewTable("underlying_type",
EntityColumn(TypeType, "tp"),
)

// AliasRhsTable is the table associating type aliases with their RHS.
var AliasRhsTable = NewTable("alias_rhs",
EntityColumn(TypeAlias, "alias").Unique(),
EntityColumn(TypeType, "tp"),
)

// ComponentTypesTable is the table associating composite types with their component types
var ComponentTypesTable = NewTable("component_types",
EntityColumn(CompositeType, "parent"),
Expand Down
Loading