Skip to content

A symmetric meta programming framework #3634

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 62 commits into from
Dec 21, 2017
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
85fa627
Fix #3597 - Don't check inline for params after pickling
odersky Dec 2, 2017
63d02a6
Fix condition in expandPrivate
odersky Dec 3, 2017
f93368d
Fix #3596: Handle supercall arguments in unpickler
odersky Dec 3, 2017
36ede6f
When unpickling, enter only class members into enclosing scope.
odersky Dec 3, 2017
bebefec
Clean up treatment of local contexts in unpickler
odersky Dec 3, 2017
227f8be
Drop localDummies again
odersky Dec 3, 2017
02eebc2
Add prefix types
odersky Dec 4, 2017
7303898
Cleanup of ElimJavaPackages
odersky Dec 4, 2017
141acaa
Rename ElimJavaPackages -> ElimPackagePrefixes
odersky Dec 4, 2017
6a9c027
Initial meta framework classes and modules
odersky Dec 4, 2017
e52fe74
Utility method: reporting
odersky Dec 5, 2017
a5134ca
Add quote syntax
odersky Dec 5, 2017
f3ff4e9
Add quote typechecking
odersky Dec 5, 2017
b21e638
Add quote reification framework
odersky Dec 5, 2017
7418cef
Support printing of Quote trees
odersky Dec 5, 2017
67a808a
Fix isType/isTerm predicates for splices
odersky Dec 5, 2017
a53c2ff
Fix missing core libs test
odersky Dec 5, 2017
1a7803c
Change reify for types
odersky Dec 5, 2017
72c32c5
Rename reify -> unpickle
odersky Dec 5, 2017
b35ff5f
Make ReifyQuotes a macro phase
odersky Dec 5, 2017
0e0f31d
Don't force quote methods
odersky Dec 5, 2017
1bdf8a0
Remove outdated comment
odersky Dec 5, 2017
87ee12f
Make '( and '{ tokens that can start an expression
odersky Dec 6, 2017
4fb2eb0
Revamp of ReifyQuotes
odersky Dec 6, 2017
1134507
Rename meta -> quoted
odersky Dec 6, 2017
d87db6c
Suppress some staging level errors
odersky Dec 6, 2017
dedf671
Remove printing inefficiencies
odersky Dec 8, 2017
bc6c690
Pull inlined bindings under a splice
odersky Dec 8, 2017
f2c09d4
Inline by-name parameters directly
odersky Dec 8, 2017
db7e42a
Add test case
odersky Dec 8, 2017
a9c3b5f
Fix layout of implicit error messages
odersky Dec 11, 2017
90acfed
Polishings to TreePickler
odersky Dec 11, 2017
205b4cd
Add MacroTransform that allows implicit search
odersky Dec 11, 2017
b466e0a
Allow cross-stage persistence for types
odersky Dec 11, 2017
22d7429
Add Quotable type class
odersky Dec 13, 2017
dbb7c81
Add Let to staged interpreter test
odersky Dec 13, 2017
300c37e
Don't require implicits to make type refs persist stages
odersky Dec 14, 2017
646453a
Add infrastructure for pickling/unpickling with holes and splices
odersky Dec 14, 2017
376d325
Print TypeDefs from trees
odersky Dec 16, 2017
a1bff5f
Make TreeTypeMap non-final
odersky Dec 16, 2017
6a252e0
Move Unpickler to runtime.quoted
odersky Dec 16, 2017
bc6dde8
Export more printing methods from Printer
odersky Dec 16, 2017
d8dd739
Add Lambda method to tpd
odersky Dec 16, 2017
1d52ab7
ReifyQuotes v2
odersky Dec 16, 2017
a8b9ba7
Mark inline methods containing splices as macros
odersky Dec 16, 2017
4023502
Eliminate macros in RefChecks
odersky Dec 16, 2017
d1abf40
Typecheck macros as if they were in a quoted context
odersky Dec 17, 2017
04d3a58
Refine handling of inline parameters of macros
odersky Dec 17, 2017
94e7c83
Force definitions of quote methods when initializing Definitions
odersky Dec 19, 2017
2e3c56b
Syntax polishing
odersky Dec 19, 2017
0c6cbc3
Rename Quotable -> Liftable
odersky Dec 19, 2017
b90ed13
Add reference documentation
odersky Dec 19, 2017
21ad0db
Fix test
odersky Dec 19, 2017
b0437ce
Fix syntax highlighting in docs
odersky Dec 19, 2017
5fe6d15
Doecumentation fixes
odersky Dec 19, 2017
07bbb2b
More doc fixes
odersky Dec 19, 2017
8656be3
Add section "Limitations to Splicing"
odersky Dec 19, 2017
833775f
Address review comments on reference section
odersky Dec 19, 2017
33a93a6
Use different names for quote and type quote methods
odersky Dec 20, 2017
39ea6fb
Set Macro flag and containsQuotesOrSplices in PostTyper
odersky Dec 20, 2017
aa252fc
Reorder printers alphabetically
odersky Dec 20, 2017
8f048a7
Add test to pending
odersky Dec 20, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions tests/pending/pos/quotedSepComp/Macro_1.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import scala.quoted._
object Macros {
inline def assert(expr: => Boolean): Unit = ~ assertImpl('(expr))
def assertImpl(expr: Expr[Boolean]) = '{ () }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, this one works fine as a run test in #3662

}
5 changes: 5 additions & 0 deletions tests/pending/pos/quotedSepComp/Test_2.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class Test {
import Macros._
val x = 1
assert(x != 0)
}