{"action":"created","comment":{"url":"https://api.github.com/repos/scalameta/scalameta/pulls/comments/37572529","id":37572529,"diff_hunk":"@@ -345,4 +365,102 @@ class ErrorSuite extends FunSuite {\n       |              ^\n     \"\"\".trim.stripMargin)\n   }\n+\n+  test(\"\"\"p\"$pname @ $apat\"\"\"\") {\n+    assert(typecheckError(\"\"\"\n+      import scala.meta._\n+      import scala.meta.dialects.Scala211\n+      val pname = p\"`x`\"\n+      val apat = p\"y\"\n+      p\"$pname @ $apat\"\n+    \"\"\") === \"\"\"\n+      |<macro>:6: type mismatch when unquoting;\n+      | found   : scala.meta.Term.Name\n+      | required: scala.meta.Pat.Var.Term\n+      |      p\"$pname @ $apat\"\n+      |        ^\n+    \"\"\".trim.stripMargin)\n+  }\n+\n+  test(\"\"\"p\"$ref[..$tpes](..$apats)\"\"\") {\n+    assert(typecheckError(\"\"\"\n+      import scala.meta._\n+      import scala.meta.dialects.Scala211\n+      val p\"$ref[..$tpes](..$apats)\" = p\"x[A, B]\"\n+    \"\"\") === \"\"\"\n+      |<macro>:4: pattern must be a value\n+      |      val p\"$ref[..$tpes](..$apats)\" = p\"x[A, B]\"\n+      |                                                ^\n+    \"\"\".trim.stripMargin)\n+  }\n+\n+  test(\"\"\"p\"$pat: $ptpe\"\"\"\") {\n+    assert(typecheckError(\"\"\"\n+      import scala.meta._\n+      import scala.meta.dialects.Scala211\n+      val pat = p\"`x`\"\n+      val ptpe = pt\"Y\"\n+      p\"$pat: $ptpe\"\n+    \"\"\") === \"\"\"\n+      |<macro>:6: can't unquote a name here, use a pattern instead\n+      |      p\"$pat: $ptpe\"\n+      |        ^\n+    \"\"\".trim.stripMargin)\n+  }\n+\n+  test(\"p\\\"case $X: T =>\\\"\") {\n+    assert(typecheckError(\"\"\"\n+      import scala.meta._\n+      import scala.meta.dialects.Scala211\n+      val p\"case $X: T => \" = p\"case x: T =>\"\n+    \"\"\") === \"\"\"\n+      |<macro>:4: not found: value X\n+      |      val p\"case $X: T => \" = p\"case x: T =>\"\n+      |                  ^\n+    \"\"\".trim.stripMargin)\n+  }\n+\n+//  test(\"\"\"pt\"$ptpe[..$ptpes]\"\"\") { // TODO review after #216 resolved\n+//    assert(typecheckError(\"\"\"\n+//      import scala.meta._\n+//      import scala.meta.dialects.Scala211\n+//      val pt\"$ptpe[..$ptpes]\" = pt\"x[y, z]\"\n+//    \"\"\").contains(\"found that tpe.isInstanceOf[Pat.Var.Type].`unary_!` is true\"))\n+//  }\n+\n+//  test(\"\"\"pt\"..$ptpes { ..$stats }\"\"\"\") { // TODO review after #216 resolved\n+//    assert(typecheckError(\"\"\"\n+//      import scala.meta._\n+//      import scala.meta.dialects.Scala211\n+//      val pt\"..$ptpes { ..$stats }\" = pt\"x with y { val a: A; val b: B }\"\n+//    \"\"\").contains(\"found that tpes.forall(((tpe: scala.meta.internal.ast.Pat.Type) => tpe.isInstanceOf[Pat.Var.Type].`unary_!`.&&(tpe.isInstanceOf[Pat.Type.Wildcard].`unary_!`))) is false\"))\n+//  }\n+\n+//  test(\"\"\"pt\"$ptpe forSome { ..$stats }\"\"\"\") { // TODO review after #216 resolved\n+//    assert(typecheckError(\"\"\"\n+//      import scala.meta._\n+//      import scala.meta.dialects.Scala211\n+//      val pt\"$ptpe forSome { ..$stats }\" = pt\"x forSome { val a: A }\"\n+//    \"\"\").contains(\"found that tpe.isInstanceOf[Pat.Var.Type].`unary_!` is true\"))\n+//  }\n+\n+//  test(\"\"\"pt\"$ptpe ..@$annots\"\"\"\") { // TODO review after #216 resolved\n+//    assert(typecheckError(\"\"\"\n+//      import scala.meta._\n+//      import scala.meta.dialects.Scala211\n+//      val pt\"$ptpe ..@$annots\" = pt\"x @q @w\"\n+//    \"\"\").contains(\"found that tpe.isInstanceOf[Pat.Var.Type].`unary_!` is true\"))\n+//  }\n+\n+  test(\"\"\"q\"..$mods def this(...$paramss) = $expr\"\"\"\") {\n+    assert(typecheckError(\"\"\"\n+      import scala.meta._\n+      import scala.meta.dialects.Scala211\n+      q\"private final def this(x: X, y: Y) = foo\"\n+    \"\"\") === \"\"\"\n+      |<macro>:4: this expected but identifier found\n+      |      q\"private final def this(x: X, y: Y) = foo\"\n+      |                                             ^\n+    \"\"\".trim.stripMargin)\n+  }","path":"tests/src/test/scala/quasiquotes/ErrorSuite.scala","position":187,"original_position":187,"commit_id":"74f53e918b0e539dc942e32607a245e8ce643ea5","original_commit_id":"74f53e918b0e539dc942e32607a245e8ce643ea5","user":{"login":"xeno-by","id":609152,"avatar_url":"https://avatars.githubusercontent.com/u/609152?v=3","gravatar_id":"","url":"https://api.github.com/users/xeno-by","html_url":"https://github.com/xeno-by","followers_url":"https://api.github.com/users/xeno-by/followers","following_url":"https://api.github.com/users/xeno-by/following{/other_user}","gists_url":"https://api.github.com/users/xeno-by/gists{/gist_id}","starred_url":"https://api.github.com/users/xeno-by/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xeno-by/subscriptions","organizations_url":"https://api.github.com/users/xeno-by/orgs","repos_url":"https://api.github.com/users/xeno-by/repos","events_url":"https://api.github.com/users/xeno-by/events{/privacy}","received_events_url":"https://api.github.com/users/xeno-by/received_events","type":"User","site_admin":false},"body":"Yes, that would be great. Otherwise, it'd be hard to maintain the file in the future. You did an amazing job writing all these tests btw.","created_at":"2015-08-20T19:43:18Z","updated_at":"2015-08-20T19:43:18Z","html_url":"https://github.com/scalameta/scalameta/pull/228#discussion_r37572529","pull_request_url":"https://api.github.com/repos/scalameta/scalameta/pulls/228","_links":{"self":{"href":"https://api.github.com/repos/scalameta/scalameta/pulls/comments/37572529"},"html":{"href":"https://github.com/scalameta/scalameta/pull/228#discussion_r37572529"},"pull_request":{"href":"https://api.github.com/repos/scalameta/scalameta/pulls/228"}}},"pull_request":{"url":"https://api.github.com/repos/scalameta/scalameta/pulls/228","id":42926897,"html_url":"https://github.com/scalameta/scalameta/pull/228","diff_url":"https://github.com/scalameta/scalameta/pull/228.diff","patch_url":"https://github.com/scalameta/scalameta/pull/228.patch","issue_url":"https://api.github.com/repos/scalameta/scalameta/issues/228","number":228,"state":"open","locked":false,"title":"Remaining cases from specification","user":{"login":"Dveim","id":3515147,"avatar_url":"https://avatars.githubusercontent.com/u/3515147?v=3","gravatar_id":"","url":"https://api.github.com/users/Dveim","html_url":"https://github.com/Dveim","followers_url":"https://api.github.com/users/Dveim/followers","following_url":"https://api.github.com/users/Dveim/following{/other_user}","gists_url":"https://api.github.com/users/Dveim/gists{/gist_id}","starred_url":"https://api.github.com/users/Dveim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dveim/subscriptions","organizations_url":"https://api.github.com/users/Dveim/orgs","repos_url":"https://api.github.com/users/Dveim/repos","events_url":"https://api.github.com/users/Dveim/events{/privacy}","received_events_url":"https://api.github.com/users/Dveim/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-08-20T13:07:23Z","updated_at":"2015-08-20T19:43:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/scalameta/scalameta/pulls/228/commits","review_comments_url":"https://api.github.com/repos/scalameta/scalameta/pulls/228/comments","review_comment_url":"https://api.github.com/repos/scalameta/scalameta/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scalameta/scalameta/issues/228/comments","statuses_url":"https://api.github.com/repos/scalameta/scalameta/statuses/74f53e918b0e539dc942e32607a245e8ce643ea5","head":{"label":"Dveim:master","ref":"master","sha":"74f53e918b0e539dc942e32607a245e8ce643ea5","user":{"login":"Dveim","id":3515147,"avatar_url":"https://avatars.githubusercontent.com/u/3515147?v=3","gravatar_id":"","url":"https://api.github.com/users/Dveim","html_url":"https://github.com/Dveim","followers_url":"https://api.github.com/users/Dveim/followers","following_url":"https://api.github.com/users/Dveim/following{/other_user}","gists_url":"https://api.github.com/users/Dveim/gists{/gist_id}","starred_url":"https://api.github.com/users/Dveim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dveim/subscriptions","organizations_url":"https://api.github.com/users/Dveim/orgs","repos_url":"https://api.github.com/users/Dveim/repos","events_url":"https://api.github.com/users/Dveim/events{/privacy}","received_events_url":"https://api.github.com/users/Dveim/received_events","type":"User","site_admin":false},"repo":{"id":38547506,"name":"scalameta","full_name":"Dveim/scalameta","owner":{"login":"Dveim","id":3515147,"avatar_url":"https://avatars.githubusercontent.com/u/3515147?v=3","gravatar_id":"","url":"https://api.github.com/users/Dveim","html_url":"https://github.com/Dveim","followers_url":"https://api.github.com/users/Dveim/followers","following_url":"https://api.github.com/users/Dveim/following{/other_user}","gists_url":"https://api.github.com/users/Dveim/gists{/gist_id}","starred_url":"https://api.github.com/users/Dveim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dveim/subscriptions","organizations_url":"https://api.github.com/users/Dveim/orgs","repos_url":"https://api.github.com/users/Dveim/repos","events_url":"https://api.github.com/users/Dveim/events{/privacy}","received_events_url":"https://api.github.com/users/Dveim/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Dveim/scalameta","description":"Simple, robust and portable metaprogramming toolkit for Scala","fork":true,"url":"https://api.github.com/repos/Dveim/scalameta","forks_url":"https://api.github.com/repos/Dveim/scalameta/forks","keys_url":"https://api.github.com/repos/Dveim/scalameta/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Dveim/scalameta/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Dveim/scalameta/teams","hooks_url":"https://api.github.com/repos/Dveim/scalameta/hooks","issue_events_url":"https://api.github.com/repos/Dveim/scalameta/issues/events{/number}","events_url":"https://api.github.com/repos/Dveim/scalameta/events","assignees_url":"https://api.github.com/repos/Dveim/scalameta/assignees{/user}","branches_url":"https://api.github.com/repos/Dveim/scalameta/branches{/branch}","tags_url":"https://api.github.com/repos/Dveim/scalameta/tags","blobs_url":"https://api.github.com/repos/Dveim/scalameta/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Dveim/scalameta/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Dveim/scalameta/git/refs{/sha}","trees_url":"https://api.github.com/repos/Dveim/scalameta/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Dveim/scalameta/statuses/{sha}","languages_url":"https://api.github.com/repos/Dveim/scalameta/languages","stargazers_url":"https://api.github.com/repos/Dveim/scalameta/stargazers","contributors_url":"https://api.github.com/repos/Dveim/scalameta/contributors","subscribers_url":"https://api.github.com/repos/Dveim/scalameta/subscribers","subscription_url":"https://api.github.com/repos/Dveim/scalameta/subscription","commits_url":"https://api.github.com/repos/Dveim/scalameta/commits{/sha}","git_commits_url":"https://api.github.com/repos/Dveim/scalameta/git/commits{/sha}","comments_url":"https://api.github.com/repos/Dveim/scalameta/comments{/number}","issue_comment_url":"https://api.github.com/repos/Dveim/scalameta/issues/comments{/number}","contents_url":"https://api.github.com/repos/Dveim/scalameta/contents/{+path}","compare_url":"https://api.github.com/repos/Dveim/scalameta/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Dveim/scalameta/merges","archive_url":"https://api.github.com/repos/Dveim/scalameta/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Dveim/scalameta/downloads","issues_url":"https://api.github.com/repos/Dveim/scalameta/issues{/number}","pulls_url":"https://api.github.com/repos/Dveim/scalameta/pulls{/number}","milestones_url":"https://api.github.com/repos/Dveim/scalameta/milestones{/number}","notifications_url":"https://api.github.com/repos/Dveim/scalameta/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Dveim/scalameta/labels{/name}","releases_url":"https://api.github.com/repos/Dveim/scalameta/releases{/id}","created_at":"2015-07-04T20:58:43Z","updated_at":"2015-07-04T20:58:44Z","pushed_at":"2015-08-20T13:05:26Z","git_url":"git://github.com/Dveim/scalameta.git","ssh_url":"git@github.com:Dveim/scalameta.git","clone_url":"https://github.com/Dveim/scalameta.git","svn_url":"https://github.com/Dveim/scalameta","homepage":null,"size":3288,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"scalameta:master","ref":"master","sha":"76c8a8145c80907eabf0f74e6e21c5327e37b425","user":{"login":"scalameta","id":7526438,"avatar_url":"https://avatars.githubusercontent.com/u/7526438?v=3","gravatar_id":"","url":"https://api.github.com/users/scalameta","html_url":"https://github.com/scalameta","followers_url":"https://api.github.com/users/scalameta/followers","following_url":"https://api.github.com/users/scalameta/following{/other_user}","gists_url":"https://api.github.com/users/scalameta/gists{/gist_id}","starred_url":"https://api.github.com/users/scalameta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scalameta/subscriptions","organizations_url":"https://api.github.com/users/scalameta/orgs","repos_url":"https://api.github.com/users/scalameta/repos","events_url":"https://api.github.com/users/scalameta/events{/privacy}","received_events_url":"https://api.github.com/users/scalameta/received_events","type":"Organization","site_admin":false},"repo":{"id":20903383,"name":"scalameta","full_name":"scalameta/scalameta","owner":{"login":"scalameta","id":7526438,"avatar_url":"https://avatars.githubusercontent.com/u/7526438?v=3","gravatar_id":"","url":"https://api.github.com/users/scalameta","html_url":"https://github.com/scalameta","followers_url":"https://api.github.com/users/scalameta/followers","following_url":"https://api.github.com/users/scalameta/following{/other_user}","gists_url":"https://api.github.com/users/scalameta/gists{/gist_id}","starred_url":"https://api.github.com/users/scalameta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scalameta/subscriptions","organizations_url":"https://api.github.com/users/scalameta/orgs","repos_url":"https://api.github.com/users/scalameta/repos","events_url":"https://api.github.com/users/scalameta/events{/privacy}","received_events_url":"https://api.github.com/users/scalameta/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scalameta/scalameta","description":"Simple, robust and portable metaprogramming toolkit for Scala","fork":false,"url":"https://api.github.com/repos/scalameta/scalameta","forks_url":"https://api.github.com/repos/scalameta/scalameta/forks","keys_url":"https://api.github.com/repos/scalameta/scalameta/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scalameta/scalameta/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scalameta/scalameta/teams","hooks_url":"https://api.github.com/repos/scalameta/scalameta/hooks","issue_events_url":"https://api.github.com/repos/scalameta/scalameta/issues/events{/number}","events_url":"https://api.github.com/repos/scalameta/scalameta/events","assignees_url":"https://api.github.com/repos/scalameta/scalameta/assignees{/user}","branches_url":"https://api.github.com/repos/scalameta/scalameta/branches{/branch}","tags_url":"https://api.github.com/repos/scalameta/scalameta/tags","blobs_url":"https://api.github.com/repos/scalameta/scalameta/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scalameta/scalameta/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scalameta/scalameta/git/refs{/sha}","trees_url":"https://api.github.com/repos/scalameta/scalameta/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scalameta/scalameta/statuses/{sha}","languages_url":"https://api.github.com/repos/scalameta/scalameta/languages","stargazers_url":"https://api.github.com/repos/scalameta/scalameta/stargazers","contributors_url":"https://api.github.com/repos/scalameta/scalameta/contributors","subscribers_url":"https://api.github.com/repos/scalameta/scalameta/subscribers","subscription_url":"https://api.github.com/repos/scalameta/scalameta/subscription","commits_url":"https://api.github.com/repos/scalameta/scalameta/commits{/sha}","git_commits_url":"https://api.github.com/repos/scalameta/scalameta/git/commits{/sha}","comments_url":"https://api.github.com/repos/scalameta/scalameta/comments{/number}","issue_comment_url":"https://api.github.com/repos/scalameta/scalameta/issues/comments{/number}","contents_url":"https://api.github.com/repos/scalameta/scalameta/contents/{+path}","compare_url":"https://api.github.com/repos/scalameta/scalameta/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scalameta/scalameta/merges","archive_url":"https://api.github.com/repos/scalameta/scalameta/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scalameta/scalameta/downloads","issues_url":"https://api.github.com/repos/scalameta/scalameta/issues{/number}","pulls_url":"https://api.github.com/repos/scalameta/scalameta/pulls{/number}","milestones_url":"https://api.github.com/repos/scalameta/scalameta/milestones{/number}","notifications_url":"https://api.github.com/repos/scalameta/scalameta/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scalameta/scalameta/labels{/name}","releases_url":"https://api.github.com/repos/scalameta/scalameta/releases{/id}","created_at":"2014-06-16T23:00:32Z","updated_at":"2015-08-20T15:36:53Z","pushed_at":"2015-08-20T13:07:23Z","git_url":"git://github.com/scalameta/scalameta.git","ssh_url":"git@github.com:scalameta/scalameta.git","clone_url":"https://github.com/scalameta/scalameta.git","svn_url":"https://github.com/scalameta/scalameta","homepage":null,"size":4060,"stargazers_count":123,"watchers_count":123,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":15,"mirror_url":null,"open_issues_count":45,"forks":15,"open_issues":45,"watchers":123,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/scalameta/scalameta/pulls/228"},"html":{"href":"https://github.com/scalameta/scalameta/pull/228"},"issue":{"href":"https://api.github.com/repos/scalameta/scalameta/issues/228"},"comments":{"href":"https://api.github.com/repos/scalameta/scalameta/issues/228/comments"},"review_comments":{"href":"https://api.github.com/repos/scalameta/scalameta/pulls/228/comments"},"review_comment":{"href":"https://api.github.com/repos/scalameta/scalameta/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scalameta/scalameta/pulls/228/commits"},"statuses":{"href":"https://api.github.com/repos/scalameta/scalameta/statuses/74f53e918b0e539dc942e32607a245e8ce643ea5"}}}}