Matthew Lutze
Matthew Lutze
It looks like the parameters must be key-value pairs except in the unique case that there is a single parameter named `value` (according to the [Java tutorial](https://docs.oracle.com/javase/tutorial/java/annotations/basics.html)). This means the...
The [Java specification](https://docs.oracle.com/javase/specs/jls/se9/html/jls-9.html#jls-9.7) provides the following grammar for annotations: ``` Annotation: NormalAnnotation MarkerAnnotation SingleElementAnnotation NormalAnnotation: @ TypeName ( [ElementValuePairList] ) ElementValuePairList: ElementValuePair {, ElementValuePair} ElementValuePair: Identifier = ElementValue ElementValue: ConditionalExpression...
I think Scala is almost exactly the same, only slightly more relaxed, allowing the first `ElementValuePair` in `ElementValuePairList` to be `ElementValue`, as in: ```scala @Juice(Fruit.APPLE, fromConcentrate=true) ``` Python's decorators use...
This now causes a redundancy error. Updated syntax: ```scala enum Exp type alias Subst = Map[String, String] def unify(_: _, _: _): _ = ??? def subst(_: _, _: _):...
How do we want this to look? I propose: - `Enum({ foo = 123, bar = Blah })` is formatted just like that, with a nested record - `Enum({ foo...
!!!rerun
!!!rerun
@magnus-madsen Still some rough edges, but a review would help point out the most important ones to sand down.
> This program crashes which we need to deal with because it is common to type: > > ``` > mod Foo { > trait Add[a] { > pub type...
A note about `new`: if we ever support Java interop in the other direction, then we probably need to disallow `new` as a definition name anyway. I lean slightly toward...