diff --git a/packages/poptart_lex_gen/lib/src/services/fmt/lex_property_generator.dart b/packages/poptart_lex_gen/lib/src/services/fmt/lex_property_generator.dart index ef9624527..9e1a08e46 100644 --- a/packages/poptart_lex_gen/lib/src/services/fmt/lex_property_generator.dart +++ b/packages/poptart_lex_gen/lib/src/services/fmt/lex_property_generator.dart @@ -269,7 +269,10 @@ DartType _getLexRefVariantType( bool isArray = false; bool isUnion = false; - final relatedDoc = rule.getRelatedDocFromRef(ref.data.ref); + final relatedDoc = rule.getRelatedDocFromContextualRef( + lexiconId.toString(), + ref.data.ref, + ); if (relatedDoc != null) { final array = relatedDoc.whenOrNull(array: (data) => data); if (array != null) { diff --git a/packages/poptart_lex_gen/lib/src/services/lex_type_generator.dart b/packages/poptart_lex_gen/lib/src/services/lex_type_generator.dart index 97e89171c..7588d82ac 100644 --- a/packages/poptart_lex_gen/lib/src/services/lex_type_generator.dart +++ b/packages/poptart_lex_gen/lib/src/services/lex_type_generator.dart @@ -17,7 +17,6 @@ import 'fmt/lex_xrpc_procedure_generator.dart'; import 'fmt/lex_xrpc_query_generator.dart'; import 'fmt/lex_xrpc_subscription_generator.dart'; import 'object/lex_type.dart'; -import 'rule.dart' as rule; List generateLexTypes( final List services, @@ -47,9 +46,6 @@ final class _LexTypeGenerator { // Generate LexObjects for each definition in the lexicon for (final def in doc.defs.entries) { if (def.value is lex.ULexUserTypeObject) { - final data = def.value.data as lex.LexObject; - if (rule.isDeprecated(data.description)) continue; - _aggregateTypes( types, generateLexObject( @@ -61,7 +57,6 @@ final class _LexTypeGenerator { ); } else if (def.value is lex.ULexUserTypeArray) { final data = def.value.data as lex.LexArray; - if (rule.isDeprecated(data.description)) continue; final refVariant = data.items.whenOrNull(refVariant: (data) => data); if (refVariant == null) continue; @@ -74,9 +69,6 @@ final class _LexTypeGenerator { generateLexUnion(doc.id, def.key, '', refUnion, mainVariants), ); } else if (def.value is lex.ULexUserTypeRecord) { - final data = def.value.data as lex.LexRecord; - if (rule.isDeprecated(data.description)) continue; - _aggregateTypes( types, generateLexRecord( diff --git a/packages/poptart_lex_gen/lib/src/services/rule.dart b/packages/poptart_lex_gen/lib/src/services/rule.dart index bd2296bcc..745882bcf 100644 --- a/packages/poptart_lex_gen/lib/src/services/rule.dart +++ b/packages/poptart_lex_gen/lib/src/services/rule.dart @@ -476,6 +476,8 @@ LexUserType? getRelatedDocFromContextualRef( if (ref == null) return null; if (ref.startsWith('#')) return getRelatedDocFromRef('$lexiconId$ref'); + if (!ref.contains('#')) return getRelatedDocFromRef('$ref#main'); + return getRelatedDocFromRef(ref); }