Skip to content

Commit c87668a

Browse files
committed
C#: Library support for string UTF8/UTF16 encodings.
1 parent e8eedb7 commit c87668a

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

csharp/ql/lib/semmle/code/csharp/exprs/Literal.qll

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,29 @@ class DecimalLiteral extends RealLiteral, @decimal_literal_expr {
102102
}
103103

104104
/**
105-
* A `string` literal, for example `"Hello, World!"`.
105+
* A `string` literal. Either a `string` literal (`StringLiteralUtf16`),
106+
* or a `u8` literal (`StringLiteralUtf8`).
106107
*/
107108
class StringLiteral extends DotNet::StringLiteral, Literal, @string_literal_expr {
108109
override string toString() { result = "\"" + this.getValue().replaceAll("\"", "\\\"") + "\"" }
109110

110111
override string getAPrimaryQlClass() { result = "StringLiteral" }
111112
}
112113

114+
/**
115+
* A `string` literal, for example `"Hello, World!"`.
116+
*/
117+
class StringLiteralUtf16 extends StringLiteral, @utf16_string_literal_expr {
118+
override string getAPrimaryQlClass() { result = "StringLiteralUtf16" }
119+
}
120+
121+
/**
122+
* A `u8` literal, for example `"AUTH"u8`
123+
*/
124+
class StringLiteralUtf8 extends StringLiteral, @utf8_string_literal_expr {
125+
override string getAPrimaryQlClass() { result = "StringLiteralUtf8" }
126+
}
127+
113128
/**
114129
* A `null` literal.
115130
*/

0 commit comments

Comments
 (0)