Closed
Description
This is thread for issues about implementation of ScalaTest macros (related meta issue #5489)
TODOS
- Line number (source)
- Position macros (source)
- Assert & Assume macros (source)
- ==
- !=
- === blocked by Some useful tree constructors #5567 Macro expansion exception related to Select #5786
- >=, <=, >, <: blocked by Some useful tree constructors #5567, but we use Term.Select.copy as walkaround
- assertTypeError (source) blocked by missing
c.parse
+c.typecheck
- assertDoesNotCompile (source) blocked by missing
c.parse
+c.typecheck
- assertCompiles (source) blocked by missing
c.parse
+c.typecheck
- GenFactories macros (source)
- Requirements macros (source)
- require(boolean)
- requireNonNull(args: Any*)
- requireState
- Snapshot macros (source)
- DiagrammedAssertion macros (source)
- macro implementation
- usage blocked by overriding macros
- Expectation macros (source)
- expect
- expect compile: blocked by missing
c.parse
+c.typecheck
- Matcher macros (source)
- Matchers macros (source)
- shoud
- should compile: blocked by missing
c.parse
+c.typecheck
- MatcherPatternMacro (source)
- MatchPatternWord (source)
- BeWord (source)
- NoWord (source)
- ResultOfNotWordForAny (source)
- LongAnyVal (source)
- CharAnyVal (source)
- FloatAnyVal (source)
- DoubleAnyVal (source)
- IntAnyVal (source)
- NumericString (source)
- PercentageInt (source
- RegexString (source)
Issues
- Overriding of macros (source, source)
- Implementation of macro are private (source, issue Inline proxy cannot be generated on package #5492 )
- liftSeq in lib ( Add
List[Expr[T]]
toExpr[List[T]]
conversion in the library #5543)
private def liftSeq(args: Seq[Expr[Any]]): Expr[Seq[Any]] = args match {
case x :: xs => '{ (~x) +: ~(liftSeq(xs)) }
case Nil => '(Seq(): Seq[Any])
}
-
import Term._
andimport refl._
are tedious - bug Error in reify/seal implementation #5533
- bug Error in reify/seal implementation (2) #5536
- bug Macros: Imprecise error for string lifting #5547
- constructors required to support generic
>
operation that work on unknown types. Blocked by Add TASTy reflect constructors #5438 Some useful tree constructors #5567 - a helper method like
def typeOf[T]: Type
will be helpful - seal to a method type: useful in
===
case Syntax for method types or tree constructors useful in meta-programming #5563 - bug with line number Incorrect line positions in macro expansion #5629
- Runtime reflection support Meta-programming: runtime reflection support? #5639
-
IsSelectModule
not friendly Proposal for replacing IsXxx extractors in tasty-reflect #7204 -
copy
not useful - missing
selectApply
on any term - bug Compiler crash during macro expansion #5715
- report warnings with precise positions
- bug Macro expansion exception related to Select #5786
- bug Weird versioning issues with SBT after upgrade to 2.12.8 #5612
- bug Incorrect RefChecks in Scala2 mode #5831
- bug Function5.curried not implemented #6109
- bug Phase consistency involving higher-kinded types #5962
- bug Macro expansion failed with missing positions #6048
- bug Missing constructor for Term.Ident #5951
- bug Illegal field modifiers in class Matchers: 0x9 #5924
- bug An implicit val should not be available for defining itself? #6114
- bug StackOverflowError related to implicits #6119