{"push_id":2816638875,"size":5,"distinct_size":5,"ref":"refs/heads/labeled","head":"432aaaa18aabd66af138651a899f5dad073abfcc","before":"9c19830f7728bdaea1e67ab02d66f325ce51bcdf","commits":[{"sha":"584c623b6d2d735d412314b3dc11864398f3c7e7","author":{"name":"Greg Pevnev","email":"182044164e4a301c3e329b5829a308861457c2ad@gmail.com"},"message":"fixed typo from `InOn[On]` to `isOn[On]`","distinct":true,"url":"https://api.github.com/repos/sjrd/dotty/commits/584c623b6d2d735d412314b3dc11864398f3c7e7"},{"sha":"f3d84c5304cfdde062e13eae177f41236ea37c7d","author":{"name":"Greg Pevnev","email":"182044164e4a301c3e329b5829a308861457c2ad@gmail.com"},"message":"fixed another typo","distinct":true,"url":"https://api.github.com/repos/sjrd/dotty/commits/f3d84c5304cfdde062e13eae177f41236ea37c7d"},{"sha":"82b84da95ad7c25907abbdf9104b080714f1025d","author":{"name":"Paolo G. Giarrusso","email":"7d29c16196417912ba1e9a6133cd4095f2f879e8@gmail.com"},"message":"Merge pull request #4963 from gpevnev/erased-terms-typo\n\nfixed typo from `InOn[On]` to `isOn[On]`","distinct":true,"url":"https://api.github.com/repos/sjrd/dotty/commits/82b84da95ad7c25907abbdf9104b080714f1025d"},{"sha":"c26b8f0df3bbc05bc43346ce65701747d0764acc","author":{"name":"Sébastien Doeraene","email":"2832a3611e91a3b35b084da8a16440b68c3bd8c7@gmail.com"},"message":"Give the Method flag to the label-defs produced by TailRec.\n\nThis is consistent with those produced by the current pattern\nmatcher.","distinct":true,"url":"https://api.github.com/repos/sjrd/dotty/commits/c26b8f0df3bbc05bc43346ce65701747d0764acc"},{"sha":"432aaaa18aabd66af138651a899f5dad073abfcc","author":{"name":"Sébastien Doeraene","email":"2832a3611e91a3b35b084da8a16440b68c3bd8c7@gmail.com"},"message":"Introduce Labeled blocks, and use them in PatternMatcher.\n\nA Labeled block is an expression tree of the form\n\n  label[T]: {\n    expr\n  }\n\nwhere `expr` must conform to the type `T`. In addition, within\n`expr` (but nowhere else), return from the label is allowed:\n\n  return[label] e\n\nwhere `e` must conform to the type `T` as well.\n\nIf execution of `expr` completes normally (rather than throwing an\nexception or returning, etc.), then the result of evaluating the\n`Labeled` block is the result of `expr`. If a `return[label] e` is\nreached, the execution of `expr` is interrupted, and the result of\nevaluating the `Labeled` block is the result of evaluating the\nargument `e`.\n\nImplementation-wise, a `Labeled` block is represented as a `Tree`\nwith the shape:\n\n  Labeled(Bind(labelName), expr)\n\nwhere the `Bind` nodes holds the definition of the label symbol.\nThat symbol is a term symbol with the flag `Label` (but not\n`Method`, unlike symbols for label-defs) and whose `info` is the\nresult type `T` of the labeled block.\n\nWe use those new `Labeled` blocks in `PatternMatcher`, instead of\nlabel-defs. This is the first step towards completely removing\nlabel-defs from the compiler.","distinct":true,"url":"https://api.github.com/repos/sjrd/dotty/commits/432aaaa18aabd66af138651a899f5dad073abfcc"}]}
{"actor":{"display_login":"sjrd"}}