feat(type-system): implement concept_comparison with pattern matching
Added complete support for the new type system syntax including: - concept: Base type declarations - sub_concept: Enum and record sub-type definitions - concept_comparison: Compile-time pattern matching with conditional guards Parser changes: - Added VariantPattern, FieldCondition, and Condition AST nodes - Implemented "is" keyword for pattern matching (e.g., "CupType is Glass or CupType is Plastic") - Added Value::Any variant to support universal type matching - Disambiguated enum-like vs record-like sub_concept syntax LSP updates: - Added Value::Any match arms across code_actions, completion, hover, inlay_hints, and semantic_tokens - Type inference and formatting support for Any values Example fixes: - Fixed syntax error in baker-family behaviors (missing closing brace in nested if) - Removed deprecated core_enums.sb file
This commit is contained in:
@@ -98,7 +98,6 @@ pub fn token_is_declaration_keyword(token: &Token) -> bool {
|
||||
Token::Relationship |
|
||||
Token::Institution |
|
||||
Token::Location |
|
||||
Token::Enum |
|
||||
Token::Schedule
|
||||
)
|
||||
}
|
||||
@@ -116,7 +115,6 @@ pub fn token_is_structural_keyword(token: &Token) -> bool {
|
||||
Token::Relationship |
|
||||
Token::Institution |
|
||||
Token::Location |
|
||||
Token::Enum |
|
||||
Token::Schedule
|
||||
)
|
||||
}
|
||||
@@ -132,7 +130,6 @@ pub fn declaration_token_to_str(token: &Token) -> Option<&'static str> {
|
||||
| Token::Relationship => Some("relationship"),
|
||||
| Token::Institution => Some("institution"),
|
||||
| Token::Location => Some("location"),
|
||||
| Token::Enum => Some("enum"),
|
||||
| Token::Schedule => Some("schedule"),
|
||||
| _ => None,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user