Skip to content

csskit_proc_macro: Generate name suffixes for colliding properties - #1163

Merged
keithamus merged 1 commit into
mainfrom
csskit-proc-macro-generate-name-suffixes-for-colliding-properties
Jun 3, 2026
Merged

csskit_proc_macro: Generate name suffixes for colliding properties#1163
keithamus merged 1 commit into
mainfrom
csskit-proc-macro-generate-name-suffixes-for-colliding-properties

Conversation

@keithamus

Copy link
Copy Markdown
Member

Some syntaxes (transform origin) will build up sub-types which result in
colliding type names, which results in a compile time panic.

This change iterates over sub-types with a two pass system, the first collecting
names, the second checking if they've been seen and providing a collision_suffix
in order to prevent the compile time panic. This ends with more verbose names,
but they can be renamed later in the pipeline.

Some syntaxes (transform origin) will build up sub-types which result in
colliding type names, which results in a compile time panic.

This change iterates over sub-types with a two pass system, the first collecting
names, the second checking if they've been seen and providing a collision_suffix
in order to prevent the compile time panic. This ends with more verbose names,
but they can be renamed later in the pipeline.
@keithamus
keithamus enabled auto-merge (squash) June 3, 2026 21:06

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All CI jobs have passed. Approving.

@keithamus
keithamus merged commit 10f7d18 into main Jun 3, 2026
16 of 17 checks passed
@keithamus
keithamus deleted the csskit-proc-macro-generate-name-suffixes-for-colliding-properties branch June 3, 2026 21:13
github-actions Bot pushed a commit that referenced this pull request Jun 3, 2026
## [0.0.24] - 2026-06-03

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))

[forcebuild]
@keithamus keithamus mentioned this pull request Jun 3, 2026
github-actions Bot pushed a commit that referenced this pull request Jun 3, 2026
## [0.0.24] - 2026-06-03

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))
github-actions Bot pushed a commit that referenced this pull request Jun 4, 2026
## [0.0.24] - 2026-06-04

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))
- Coverage: refactor csskit-acceptance script to allow arbitrary command syntax (#1167) ([#1167](#1167))
- Coverage: add more csskit-acceptance snapshot tests (#1168) ([#1168](#1168))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Jun 4, 2026
## [0.0.24] - 2026-06-04

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))
- Coverage: refactor csskit-acceptance script to allow arbitrary command syntax (#1167) ([#1167](#1167))
- Coverage: add more csskit-acceptance snapshot tests (#1168) ([#1168](#1168))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))
github-actions Bot pushed a commit that referenced this pull request Jun 4, 2026
## [0.0.24] - 2026-06-04

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))
- Coverage: refactor csskit-acceptance script to allow arbitrary command syntax (#1167) ([#1167](#1167))
- Coverage: add more csskit-acceptance snapshot tests (#1168) ([#1168](#1168))
- Coverage: try and be consistent with trailing newlines (#1170) ([#1170](#1170))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))

[forcebuild]
github-actions Bot pushed a commit that referenced this pull request Jun 4, 2026
## [0.0.24] - 2026-06-04

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))
- Coverage: refactor csskit-acceptance script to allow arbitrary command syntax (#1167) ([#1167](#1167))
- Coverage: add more csskit-acceptance snapshot tests (#1168) ([#1168](#1168))
- Coverage: try and be consistent with trailing newlines (#1170) ([#1170](#1170))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))
keithamus added a commit that referenced this pull request Jun 4, 2026
## [0.0.24] - 2026-06-04

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))
- Coverage: refactor csskit-acceptance script to allow arbitrary command syntax (#1167) ([#1167](#1167))
- Coverage: add more csskit-acceptance snapshot tests (#1168) ([#1168](#1168))
- Coverage: try and be consistent with trailing newlines (#1170) ([#1170](#1170))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))

[forcebuild]
keithamus added a commit that referenced this pull request Jun 4, 2026
## [0.0.24] - 2026-06-04

### Other Changes
- Update css-minify-tests (#1150) ([#1150](#1150))
- Chore(deps): update rust crate dashmap to v6.2.1 (#1151) ([#1151](#1151))
- Chore(deps): update rust crate insta to v1.47.2 (#1152) ([#1152](#1152))
- Coverage: refactor csskit-acceptance script to allow arbitrary command syntax (#1167) ([#1167](#1167))
- Coverage: add more csskit-acceptance snapshot tests (#1168) ([#1168](#1168))
- Coverage: try and be consistent with trailing newlines (#1170) ([#1170](#1170))

### Chromashift
- chromashift/css_ast: Completely rewrite color mixing, support `none` channels & N-colors (#1162) ([#1162](#1162))

### Css_ast
- Regenerate css_ast/src/values from csswg drafts (#1142) ([#1142](#1142))
- css_ast: resolve `none` channels to 0 (#1154) ([#1154](#1154))
- css_ast: Rewrite <position> and <bg-position> (#1164) ([#1164](#1164))

### Csskit
- chore(deps): update dependencies (patch) (#1143) ([#1143](#1143))

### Csskit_proc_macro
- csskit_proc_macro: Generate name suffixes for colliding properties (#1163) ([#1163](#1163))

### Csskit_transform
- coverage: update snapshot data (#1153) ([#1153](#1153))
- coverage: update css-minify-tests (#1161) ([#1161](#1161))

### Csskit_vscode
- Release csskit vscode extension v1.0.8 (#1107) ([#1107](#1107))
- Release csskit vscode extension v1.0.9 (#1147) ([#1147](#1147))
- chore(deps): update dependency oxlint to v1.65.0 (#1146) ([#1146](#1146))
- chore(deps): update dependency oxlint to v1.66.0 (#1148) ([#1148](#1148))
- chore(deps): update dependencies (patch) (#1156) ([#1156](#1156))
- chore(deps): update dependency oxlint to v1.67.0 (#1159) ([#1159](#1159))
- fix(deps): update dependency vscode-languageclient to v10 (#1165) ([#1165](#1165))

[forcebuild]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant