Repository navigation
Conversation
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
The change spans parser precedence, layout parsing, version gating, resolution, diagnostics, and hundreds of golden tests, so complete cross-platform suite validation and human review are needed.
No open issues 🎉
What changed in this PR
This pull request introduces dotted selective open syntax for MLscript, including nested paths, indentation-based groups, wildcard selections, aliases, and hidden members. It updates parser and language-version behavior, documents the new forms, and migrates broad compiler and runtime test coverage.
Changes:
- Adds parsing and compatibility support for dotted, nested, indented, wildcard, and aliased opens.
- Introduces language-version warnings for legacy open syntax.
- Updates documentation, diagnostics, and extensive test fixtures for the new syntax.
| File | Description |
|---|---|
| hkmc2/shared/src/test/mlscript/ups/UpsBugsBacklog.mls | Migrates annotation open syntax to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/TransformFree.mls | Migrates annotation open syntax to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/transformation/TermIdentity.mls | Migrates selective annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/transformation/PatternIdentity.mls | Migrates selective annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/transformation/BindingLess.mls | Migrates module and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/syntax/WrongArity.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/syntax/PatternBody.mls | Migrates wildcard stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/syntax/InterestingPatterns.mls | Migrates selective option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/syntax/CrossCompilation.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/specialization/SimpleLiterals.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/specialization/SimpleList.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/SimpleTransform.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/SimpleConjunction.mls | Migrates option and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/regex/Identifier.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/regex/EmailAddress.mls | Migrates iterator and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/RecursiveTransformations.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/recursion/SignBox.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/recursion/NullTree.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/recursion/NatBox.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/recursion/LeafEvenOddTree.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/recursion/BitTree.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/recursion/BitSeq.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/parametric/Nullable.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/parametric/ListLike.mls | Migrates annotation and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/parametric/HigherOrderPattern.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/nondeterminism/LaRbTree.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/nondeterminism/EvenOddTree.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/nondeterminism/BitArithmetic.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/MatchResult.mls | Migrates runtime and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/UnsupportedShapes.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/SimpleExample.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/RecursionAlternatives.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/NonCatchAll.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/MoreAlternatives.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/ListFusion.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/IndirectRecursion.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/FixedPointPatterns.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/fixpoint/Diagnostics.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/examples/TupleSpread.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/Record.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/PrecedenceClimbStackParse.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/HindleyMilner.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/examples/Flatten.mls | Migrates annotation and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/Extraction.mls | Migrates option and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/EvaluationContext2.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/examples/EvaluationContext.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/DoubleTripleList.mls | Migrates annotation and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/DoubleOrSum.mls | Migrates annotation, stack, and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/DnfCnf.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/examples/BasicStackParse.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/BasicSeqStackParse.mls | Migrates iterator wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/examples/BadRecStackParse.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ups/EmptyJunctions.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ups/BasicStackPatterns.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/syntax/TupleRest.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/syntax/Of.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ucs/syntax/Do.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/SimpleTuple.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/Refinement.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/RecordPattern.mls | Migrates option and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/Parameters.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/Literals.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/ConjunctionPattern.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/CompiledQualifiedConstructors.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/CompiledClassPatterns.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/Compilation.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ucs/patterns/AliasPattern.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/normalization/UnifyTupleElements.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/normalization/UnifySubScrutinees.mls | Migrates stack and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/normalization/InheritanceNormalization.mls | Migrates example wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/hygiene/HygienicBindings.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ucs/general/List.mls | Migrates stack and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/examples/ULC.mls | Migrates option and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/examples/SimpleTree.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/ucs/examples/Permutations.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/examples/ListFold.mls | Migrates stack, option, and string-operation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/examples/LeftistTree.mls | Migrates option and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/examples/EitherOrBoth.mls | Migrates option and string-operation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/ucs/examples/BinarySearchTree.mls | Migrates option and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/tailrec/TailRecOpt.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/tailrec/Simple.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/tailrec/MultiArgLists.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/tailrec/Errors.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/syntax/BackslashApps.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/syntax/annotations/Unsupported.mls | Migrates string-operation opens and related diagnostics. |
| hkmc2/shared/src/test/mlscript/syntax/annotations/Pattern.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/std/StackTests.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/std/RenderingTest.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/std/PrettyPrintTest.mls | Migrates rendering opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/std/MutMapTest.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/std/LazyArrayTest.mls | Migrates lazy-array opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/std/FingerTreeListTest.mls | Migrates finger-tree opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/WrapperResults.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/WildcardUnionInterfaces.mls | Migrates wildcard receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/WildcardUnionExposure.mls | Updated as part of this pull request. |
| hkmc2/shared/src/test/mlscript/slop/wasm/UndefinedRepresentations.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/wasm/OptionalParams.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/VariadicParams.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/UnsafeUndefined.mls | Migrates annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/UnsafeFieldAssignments.mls | Migrates wildcard receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/TailCallRestCopies.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/syntax/SelectiveOpens.mls | Adds coverage for dotted, nested, indented, and path-based selective opens. |
| hkmc2/shared/src/test/mlscript/slop/syntax/OpenWildcardsAndAliases.mls | Adds coverage for wildcard opens, aliases, hiding, and module aliases. |
| hkmc2/shared/src/test/mlscript/slop/syntax/ConditionalBlocks.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/slop/syntax/ConditionalBlockEdges.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/slop/strictres/OptionalParams.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/strictres/OptionalBinding.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/SharedFunctionSignatures.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/RewriteRepresentations.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/PlainFields.mls | Migrates JavaScript annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/OverrideLayouts.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/OptionalEtaExpansion.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/OptionalBinding.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/LeadingDotSelections.mls | Migrates wildcard namespace opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/JsSymbol.mls | Migrates symbol and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/ImplicitNamespaces.mls | Migrates namespace opens and related diagnostics. |
| hkmc2/shared/src/test/mlscript/slop/ImplicitNamespaceRecordPatterns.mls | Migrates wildcard namespace opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/ImplicitNamespacePatterns.mls | Migrates namespace opens and related diagnostics. |
| hkmc2/shared/src/test/mlscript/slop/ImplicitNamespaceIndexChains.mls | Migrates namespace opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/ImplicitNamespaceFlowRegressions.mls | Migrates namespace opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/ImplicitNamespaceChains.mls | Migrates namespace opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/ImmutableConstructorAndPatternParameters.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/EmptyTypeInterfaces.mls | Migrates wildcard receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/slop/EmptyRecords.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/slop/DefinitionIdentity.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/ConstructorArity.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/slop/codegen/ComputedSelections.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/ClonedHandlers.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/ClonedBindings.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/CallableSignatures.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/slop/BottomAnnotations.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/opt/WorkerWrapper.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/opt/CaseOfCase.mls | Migrates annotation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/opt/BasicVarPropag.mls | Migrates scoped opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/objbuf/ObjectBufferAllocator.mls | Migrates object-buffer opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/objbuf/BasicsObjBuf.mls | Migrates object-buffer and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/TypeResolution.mls | Migrates wildcard type opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/SelfPatternRefinement.mls | Migrates evaluation-context opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/SealedClasses.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/newres/RecursiveEnvironment.mls | Migrates wildcard receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/Records.mls | Migrates selective and wildcard record opens. |
| hkmc2/shared/src/test/mlscript/newres/RecordIntersections.mls | Migrates wildcard receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/ReceiverResolution.mls | Migrates selective receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/Projections.mls | Migrates wildcard projection opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/PrivateMembers.mls | Migrates private-member opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/PrivateMemberMixes.mls | Migrates wildcard receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/PrivateCompanions.mls | Migrates annotation and module opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/PatternRefinement.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/Overrides.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/newres/OverloadedClassImports.mls | Migrates class imports to the new open syntax. |
| hkmc2/shared/src/test/mlscript/newres/OverloadedCalls.mls | Migrates wildcard module opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/OptionImports.mls | Migrates option opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/newres/MapOptionFlow.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/LexerMigration.mls | Migrates operator opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/InvalidClassCompanions.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/newres/Interpretations.mls | Migrates wildcard and type opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/InheritedTypeArguments.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/Erasure.mls | Migrates wildcard type opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/Dynamic.mls | Migrates dynamic receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/ConstructorResolution.mls | Migrates constructor and wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/ConstructorFieldRecovery.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/newres/ClonedConstructors.mls | Migrates constructor and receiver opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/ClassValues.mls | Migrates namespace opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/newres/Annotations.mls | Migrates annotation and wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/handlers/UserThreads.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/handlers/GeneratorStack.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/handlers/Async.mls | Migrates annotation and handler opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/flows/SelExpansionImport.mls | Updates open-related diagnostic spans. |
| hkmc2/shared/src/test/mlscript/effect-analysis/Basic.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/dead-param-elim/todos.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/TailRecFormerFailure.mls | Migrates stack wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/SourceLocations.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/RuntimeUsage.mls | Migrates runtime wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/PrivateMemberExtrusion.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/PrivateClassStorage.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/OpenJS.mls | Migrates JavaScript member opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/Open.mls | Adds coverage for dotted paths, indentation, nested groups, and module aliases. |
| hkmc2/shared/src/test/mlscript/codegen/NoInline.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/Inliner.mls | Migrates annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/ImportMLs.mls | Migrates imports and adds legacy-syntax warning coverage. |
| hkmc2/shared/src/test/mlscript/codegen/ImportExample.mls | Migrates wildcard and selective opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/ImportedOps.mls | Migrates operator module opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/ImportConflicts.mls | Migrates conflict and shadowing tests to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/FunnyOpen.mls | Migrates operator-open syntax and related diagnostics. |
| hkmc2/shared/src/test/mlscript/codegen/ErasedTypes.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/ClassHeaders.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/BadOpen.mls | Migrates invalid-open diagnostics to the new syntax. |
| hkmc2/shared/src/test/mlscript/codegen/BadNew.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/codegen/BadGenerators.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript/codegen/BadConfigDirective.mls | Updates available-version diagnostics. |
| hkmc2/shared/src/test/mlscript/block-staging/PrintCode.mls | Migrates block and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/basics/Underscores.mls | Migrates iterator wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/basics/StrTest.mls | Migrates string-operation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/basics/Records.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/basics/MemberProjections.mls | Migrates projection opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/basics/Assert.mls | Migrates option wildcard opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/backlog/UCS.mls | Updates dotted-selection diagnostics. |
| hkmc2/shared/src/test/mlscript/backlog/ToTriage.mls | Adds operator-first selective-open coverage. |
| hkmc2/shared/src/test/mlscript/backlog/OfStatements.mls | Migrates invalid-open diagnostics to the new syntax. |
| hkmc2/shared/src/test/mlscript/backlog/NewWith.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/backlog/ForLLM.mls | Updates diagnostic spans affected by the syntax changes. |
| hkmc2/shared/src/test/mlscript/apps/parsing/TypeTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/RulesTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/RecursiveDescentTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/PrattParsingTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/ParseRuleVisualizerTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/ParseRuleTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/ParserTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/ParserErrorTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/LoopExpressions.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/LexerTest.mls | Migrates lexer-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/LeftRecursion.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/DirectiveTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/parsing/CamlLightTest.mls | Migrates parser-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript/apps/IterTest.mls | Migrates iterator and stack opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/XML.mls | Migrates prelude and iterator opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/wasm/modules/diamond/Right.mls | Migrates counter opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/wasm/modules/diamond/Left.mls | Migrates counter opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/ups/TruthyFalsy.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript-compile/ups/EvenOddTree.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript-compile/ups/EvaluationContext.mls | Migrates option and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/ups/DnfCnf.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript-compile/TreeTracer.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/Term.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/SymbolKeyLibrary.mls | Migrates annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/Shape.mls | Migrates prelude, block, and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/RuntimeWasm.mls | Migrates annotation opens to the dotted form. |
| hkmc2/shared/src/test/mlscript-compile/Runtime.mls | Migrates annotation and JavaScript opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/Record.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/Predef.mls | Migrates annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/treejoin.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/sphere.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/secretary.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/scc.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/rsa.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/puzzle.mls | Migrates nofib prelude and annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/primetest.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/pretty.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/power.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/para.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/NofibPrelude.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/minimax.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/mate.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/mandel2.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/mandel.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/life.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/lcss.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/lastpiece.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/lambda.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/knights.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/integer.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/gcd.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/fish.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/eliza.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/cse.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/cryptarithm2.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/cryptarithm1.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/constraints.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/clausify.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/circsim.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/cichelli.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/calendar.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/boyer2.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/boyer.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/banner.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/awards.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/atom.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/nofib/ansi.mls | Migrates nofib prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/NestedFunctionsNoLift.mls | Migrates annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/MutMap.mls | Migrates prelude and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/ModuleReceiverCapture.mls | Migrates annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/LazyFingerTree.mls | Migrates iterator, prelude, and module opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/LazyArray.mls | Migrates iterator, prelude, and module opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/Iter.mls | Migrates annotation, option, stack, and prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/resume_nontail.mls | Migrates handler-benchmark opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/product_early.mls | Migrates handler-benchmark opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/parsing_dollars.mls | Migrates handler-benchmark opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/iterator.mls | Migrates handler-benchmark opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/handler_sieve.mls | Migrates handler-benchmark opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/generator.mls | Migrates handler-benchmark opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/countdown.mls | Migrates handler-benchmark opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/handlers-bench/BaseEffects.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/FingerTreeList.mls | Migrates option, iterator, prelude, and module opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/FingerTreeList_StressTest.mls | Migrates stress-test opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/FilePrivateFunctions.mls | Migrates annotation opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/Example.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/Block.mls | Migrates prelude, string, and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/TreeHelpers.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Tree.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/TokenHelpers.mls | Migrates stack and prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Token.mls | Migrates option and prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Test.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Rules.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/RecursiveDescent.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/PrattParsing.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/ParseRuleVisualizer.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/ParseRule.mls | Migrates parser-library and nested opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Parser.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Lexer.mls | Migrates lexer-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Keywords.mls | Migrates prelude and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Extension.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/Expr.mls | Migrates string-operation and option opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing/BasicExpr.mls | Migrates parser-library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing-web-demo/main.mls | Migrates web-demo library opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/parsing-web-demo/Examples.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/CSV.mls | Migrates prelude opens to the new syntax. |
| hkmc2/shared/src/test/mlscript-compile/apps/Accounting.mls | Migrates string-operation and prelude opens to the new syntax. |
| hkmc2/shared/src/main/scala/hkmc2/syntax/Parser.scala | Parses dotted, nested, indented, and aliased open groups. |
| hkmc2/shared/src/main/scala/hkmc2/syntax/Keyword.scala | Adjusts open parsing precedence to support aliases. |
| hkmc2/shared/src/main/scala/hkmc2/Config.scala | Adds the 0.3.2 language version and legacy-syntax warning behavior. |
| doc/reference.md | Documents dotted paths, nested groups, wildcards, aliases, exclusions, and migration behavior. |
Review effort: Lite
LPTK
marked this pull request as ready for review
November 11, 2026 14:04
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For consistency, we should now write
rather than
The indentation form is still supported, with the aded
..Paths are now also supported; eg:
Moreover, we now support renaming:
m as nrenames membermandm as _hides it.