Rust: Add upgrade and downgrade scripts

This commit is contained in:
Simon Friis Vindum
2025-12-17 12:15:16 +01:00
parent b64809cbd3
commit f1364caaa9
9 changed files with 14550 additions and 2 deletions

View File

@@ -0,0 +1,73 @@
class Element extends @element {
string toString() { none() }
}
class Enum extends Element, @enum { }
class Struct extends Element, @struct { }
class Union extends Element, @union { }
class Attr extends Element, @attr { }
class GenericParamList extends Element, @generic_param_list { }
class Name extends Element, @name { }
class Visibility extends Element, @visibility { }
class WhereClause extends Element, @where_clause { }
query predicate new_enum_attrs(Enum enum, int index, Attr attr) {
type_item_attrs(enum, index, attr)
}
query predicate new_enum_generic_param_lists(Enum enum, GenericParamList g) {
type_item_generic_param_lists(enum, g)
}
query predicate new_enum_names(Enum enum, Name name) { type_item_names(enum, name) }
query predicate new_enum_visibilities(Enum enum, Visibility visibility) {
type_item_visibilities(enum, visibility)
}
query predicate new_enum_where_clauses(Enum enum, WhereClause whereClause) {
type_item_where_clauses(enum, whereClause)
}
query predicate new_struct_attrs(Struct struct, int index, Attr attr) {
type_item_attrs(struct, index, attr)
}
query predicate new_struct_generic_param_lists(Struct struct, GenericParamList g) {
type_item_generic_param_lists(struct, g)
}
query predicate new_struct_names(Struct struct, Name name) { type_item_names(struct, name) }
query predicate new_struct_visibilities(Struct struct, Visibility visibility) {
type_item_visibilities(struct, visibility)
}
query predicate new_struct_where_clauses(Struct struct, WhereClause whereClause) {
type_item_where_clauses(struct, whereClause)
}
query predicate new_union_attrs(Union union, int index, Attr attr) {
type_item_attrs(union, index, attr)
}
query predicate new_union_generic_param_lists(Union union, GenericParamList g) {
type_item_generic_param_lists(union, g)
}
query predicate new_union_names(Union union, Name name) { type_item_names(union, name) }
query predicate new_union_visibilities(Union union, Visibility visibility) {
type_item_visibilities(union, visibility)
}
query predicate new_union_where_clauses(Union union, WhereClause whereClause) {
type_item_where_clauses(union, whereClause)
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
description: Renamed the `@type_item` union type to `@adt` and updated its relations
compatibility: full
type_item_derive_macro_expansions.rel: delete
type_item_attrs.rel: delete
type_item_generic_param_lists.rel: delete
type_item_names.rel: delete
type_item_visibilities.rel: delete
type_item_where_clauses.rel: delete
adt_derive_macro_expansions.rel: reorder type_item_derive_macro_expansions.rel (@type_item id, int index, @macro_items items) id index items
enum_attrs.rel: run downgrade.ql new_enum_attrs
enum_generic_param_lists.rel: run downgrade.ql new_enum_generic_param_lists
enum_names.rel: run downgrade.ql new_enum_names
enum_visibilities.rel: run downgrade.ql new_enum_visibilities
enum_where_clauses.rel: run downgrade.ql new_enum_where_clauses
struct_attrs.rel: run downgrade.ql new_struct_attrs
struct_generic_param_lists.rel: run downgrade.ql new_struct_generic_param_lists
struct_names.rel: run downgrade.ql new_struct_names
struct_visibilities.rel: run downgrade.ql new_struct_visibilities
struct_where_clauses.rel: run downgrade.ql new_struct_where_clauses
union_attrs.rel: run downgrade.ql new_union_attrs
union_generic_param_lists.rel: run downgrade.ql new_union_generic_param_lists
union_names.rel: run downgrade.ql new_union_names
union_visibilities.rel: run downgrade.ql new_union_visibilities
union_where_clauses.rel: run downgrade.ql new_union_where_clauses

View File

@@ -1,5 +1,5 @@
description: Added the `@call_expr_base` union type
compatibility: backwards
description: Added the `@type_item` union type
compatibility: full
call_expr_arg_lists.rel: delete
call_expr_attrs.rel: delete

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
description: Renamed the `@adt` union type to `@type_item` and updated its relations
compatibility: full
adt_derive_macro_expansions.rel: delete
enum_attrs.rel: delete
enum_generic_param_lists.rel: delete
enum_names.rel: delete
enum_visibilities.rel: delete
enum_where_clauses.rel: delete
struct_attrs.rel: delete
struct_generic_param_lists.rel: delete
struct_names.rel: delete
struct_visibilities.rel: delete
struct_where_clauses.rel: delete
union_attrs.rel: delete
union_generic_param_lists.rel: delete
union_names.rel: delete
union_visibilities.rel: delete
union_where_clauses.rel: delete
type_item_derive_macro_expansions.rel: reorder adt_derive_macro_expansions.rel (@adt id, int index, @macro_items items) id index items
type_item_attrs.rel: run upgrade.ql new_type_item_attrs
type_item_generic_param_lists.rel: run upgrade.ql new_type_item_generic_param_lists
type_item_names.rel: run upgrade.ql new_type_item_names
type_item_visibilities.rel: run upgrade.ql new_type_item_visibilities
type_item_where_clauses.rel: run upgrade.ql new_type_item_where_clauses

View File

@@ -0,0 +1,45 @@
class Element extends @element {
string toString() { none() }
}
class Adt extends Element, @adt { }
class Attr extends Element, @attr { }
class GenericParamList extends Element, @generic_param_list { }
class Name extends Element, @name { }
class Visibility extends Element, @visibility { }
class WhereClause extends Element, @where_clause { }
query predicate new_type_item_attrs(Adt adt, int index, Attr attr) {
enum_attrs(adt, index, attr) or
struct_attrs(adt, index, attr) or
union_attrs(adt, index, attr)
}
query predicate new_type_item_generic_param_lists(Adt adt, GenericParamList g) {
enum_generic_param_lists(adt, g) or
struct_generic_param_lists(adt, g) or
union_generic_param_lists(adt, g)
}
query predicate new_type_item_names(Adt adt, Name name) {
enum_names(adt, name) or
struct_names(adt, name) or
union_names(adt, name)
}
query predicate new_type_item_visibilities(Adt adt, Visibility visibility) {
enum_visibilities(adt, visibility) or
struct_visibilities(adt, visibility) or
union_visibilities(adt, visibility)
}
query predicate new_type_item_where_clauses(Adt adt, WhereClause where_clause) {
enum_where_clauses(adt, where_clause) or
struct_where_clauses(adt, where_clause) or
union_where_clauses(adt, where_clause)
}