Branch
Hash :
947a55bd
Author :
Date :
2020-03-29T18:30:31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
void abc<U, V>() where U : struct, IFoo where V : IFoo<U> {}
delegate void F<U>(U u) where U : class, IFoo<Bar>;
class Foo<T> where T : IFoo<int> {}
readonly struct Foo<T> where T : unmanaged {}
----------------------------------------------------
[
["return-type", [
["keyword", "void"]
]],
["generic-method", [
["function", "abc"],
["generic", [
["punctuation", "<"],
"U",
["punctuation", ","],
" V",
["punctuation", ">"]
]]
]],
["punctuation", "("],
["punctuation", ")"],
["keyword", "where"],
["class-name", "U"],
["punctuation", ":"],
["type-list", [
["keyword", "struct"],
["punctuation", ","],
["class-name", [
"IFoo"
]]
]],
["keyword", "where"],
["class-name", "V"],
["punctuation", ":"],
["type-list", [
["class-name", [
"IFoo",
["punctuation", "<"],
"U",
["punctuation", ">"]
]]
]],
["punctuation", "{"],
["punctuation", "}"],
["keyword", "delegate"],
["return-type", [
["keyword", "void"]
]],
["generic-method", [
["function", "F"],
["generic", [
["punctuation", "<"],
"U",
["punctuation", ">"]
]]
]],
["punctuation", "("],
["class-name", [
"U"
]],
" u",
["punctuation", ")"],
["keyword", "where"],
["class-name", "U"],
["punctuation", ":"],
["type-list", [
["keyword", "class"],
["punctuation", ","],
["class-name", [
"IFoo",
["punctuation", "<"],
"Bar",
["punctuation", ">"]
]]
]],
["punctuation", ";"],
["keyword", "class"],
["class-name", [
"Foo",
["punctuation", "<"],
"T",
["punctuation", ">"]
]],
["keyword", "where"],
["class-name", "T"],
["punctuation", ":"],
["type-list", [
["class-name", [
"IFoo",
["punctuation", "<"],
["keyword", "int"],
["punctuation", ">"]
]]
]],
["punctuation", "{"],
["punctuation", "}"],
["keyword", "readonly"],
["keyword", "struct"],
["class-name", [
"Foo",
["punctuation", "<"],
"T",
["punctuation", ">"]
]],
["keyword", "where"],
["class-name", "T"],
["punctuation", ":"],
["type-list", [
["keyword", "unmanaged"]
]],
["punctuation", "{"],
["punctuation", "}"]
]
----------------------------------------------------
Checks for class names and keywords in generic constraints.