@@ -7,26 +7,39 @@ previous-page: options-intro
77next-page : options-new
88---
99
10- The compiler options are classified and ordered according to their Scala 2.13 name.
11- Each Scala 2.13 option is associated with its status in Scala 3.
10+ This table lists the Scala 2.13 compiler options with their equivalent in Scala 3.
11+ Some options have cross-version support, such as ` -Vprint ` .
12+ Others have a close equivalent with a different name. A number of Scala 2 options
13+ have no equivalent in Scala 3, such as options for debugging Scala 2 macros.
14+
15+ The compiler options are shown as displayed by the help output ` scalac -help ` , ` scalac -X ` , etc.
16+ A few aliases are shown here, but most older aliases, such as ` -Xprint ` for ` -Vprint ` ,
17+ or ` -Ytyper-debug ` for ` -Vtyper ` , are listed by the latest name.
18+
19+ The option groups ` -V ` and ` -W ` were introduced in Scala 2.13, for "verbose" options that
20+ request additional diagnostic output and "warnings" that request additional checks which
21+ may or may not indicate errors in code. ` -Werror ` elevates warnings to errors, and ` -Wconf `
22+ allows precise control over warnings by either ignoring them or taking them as errors.
23+ The configuration string for ` -Wconf ` will likely require adjustment when migrating to Scala 3,
24+ since the configuration syntax and the error messages it matches are different.
1225
1326| Status | Meaning |
1427| -| -|
15- | <i class =" fa fa-check fa-lg " ></i > | it is available in Scala 3 |
16- | ` <new-name> ` | It has been renamed to ` <new-name> ` |
17- | <i class =" fa fa-times fa-lg " ></i > | It is not available in 3.0.0 but it could be added later |
28+ | <i class =" fa fa-check fa-lg " ></i > | It is available in Scala 3. |
29+ | ` <new-name> ` | It has been renamed to ` <new-name> ` . |
30+ | <i class =" fa fa-times fa-lg " ></i > | It is not yet available but could be added later. |
1831
19- > The current comparison is based on Scala 2.13.4 and 3.0.0-M3.
32+ > The current comparison is based on Scala 2.13.10 and 3.3.0.
2033
2134## Standard Settings
2235
23- | 2.13.x | 3.0 .x |
36+ | 2.13.x | 3.3 .x |
2437| -| -|
25- | ` -Dproperty=value ` | <i class =" fa fa-times fa-lg " ></i > |
26- | ` -J<flag> ` | <i class =" fa fa-times fa-lg " ></i > |
38+ | ` -Dproperty=value ` | <i class =" fa fa-check fa-lg " ></i > |
39+ | ` -J<flag> ` | <i class =" fa fa-check fa-lg " ></i > |
2740| ` -P:<plugin>:<opt> ` | <i class =" fa fa-check fa-lg " ></i >|
28- | ` -V ` | <i class =" fa fa-times fa-lg " ></i > |
29- | ` -W ` | <i class =" fa fa-times fa-lg " ></i > |
41+ | ` -V ` | <i class =" fa fa-check fa-lg " ></i > |
42+ | ` -W ` | <i class =" fa fa-check fa-lg " ></i > |
3043| ` -X ` | <i class =" fa fa-check fa-lg " ></i >|
3144| ` -Y ` | <i class =" fa fa-check fa-lg " ></i >|
3245| ` -bootclasspath ` | <i class =" fa fa-check fa-lg " ></i >|
@@ -63,11 +76,74 @@ Each Scala 2.13 option is associated with its status in Scala 3.
6376| ` -verbose ` | <i class =" fa fa-check fa-lg " ></i >|
6477| ` -version ` | <i class =" fa fa-check fa-lg " ></i >|
6578
79+ ## Verbose Settings
80+
81+ | 2.13.x | 3.3.x |
82+ | -| -|
83+ | ` -Vbrowse:<phases> ` | <i class =" fa fa-times fa-lg " ></i > |
84+ | ` -Vclasspath ` | ` -Ylog-classpath ` |
85+ | ` -Vdebug ` | ` -Ydebug ` |
86+ | ` -Vdebug-tasty ` | <i class =" fa fa-times fa-lg " ></i > |
87+ | ` -Vdebug-type-error ` | <i class =" fa fa-times fa-lg " ></i > |
88+ | ` -Vdoc ` | <i class =" fa fa-times fa-lg " ></i > |
89+ | ` -Vfree-terms ` | <i class =" fa fa-times fa-lg " ></i > |
90+ | ` -Vfree-types ` | <i class =" fa fa-times fa-lg " ></i > |
91+ | ` -Vhot-statistics ` | <i class =" fa fa-times fa-lg " ></i > |
92+ | ` -Vide ` | <i class =" fa fa-times fa-lg " ></i > |
93+ | ` -Vimplicit-conversions ` | <i class =" fa fa-times fa-lg " ></i > |
94+ | ` -Vimplicits ` | <i class =" fa fa-times fa-lg " ></i > |
95+ | ` -Vimplicits-max-refined ` | <i class =" fa fa-times fa-lg " ></i > |
96+ | ` -Vimplicits-verbose-tree ` | <i class =" fa fa-times fa-lg " ></i > |
97+ | ` -Vinline <package/Class.method> ` | <i class =" fa fa-times fa-lg " ></i > |
98+ | ` -Vlog:<phases> ` | ` -Ylog:<phases> ` |
99+ | ` -Vmacro ` | <i class =" fa fa-times fa-lg " ></i > |
100+ | ` -Vmacro-lite ` | <i class =" fa fa-times fa-lg " ></i > |
101+ | ` -Vopt <package/Class.method> ` | <i class =" fa fa-times fa-lg " ></i > |
102+ | ` -Vpatmat ` | <i class =" fa fa-times fa-lg " ></i > |
103+ | ` -Vphases ` | <i class =" fa fa-check fa-lg " ></i > |
104+ | ` -Vpos ` | <i class =" fa fa-times fa-lg " ></i > |
105+ | ` -Vprint:<phases> ` | <i class =" fa fa-check fa-lg " ></i > |
106+ | ` -Vprint-args <file> ` | <i class =" fa fa-times fa-lg " ></i > |
107+ | ` -Vprint-pos ` | ` -Yprint-pos ` |
108+ | ` -Vprint-types ` | ` -Xprint-types ` |
109+ | ` -Vquasiquote ` | <i class =" fa fa-times fa-lg " ></i > |
110+ | ` -Vreflective-calls ` | <i class =" fa fa-times fa-lg " ></i > |
111+ | ` -Vreify ` | <i class =" fa fa-times fa-lg " ></i > |
112+ | ` -Vshow:<phases> ` | <i class =" fa fa-times fa-lg " ></i > |
113+ | ` -Vshow-class <class> ` | <i class =" fa fa-times fa-lg " ></i > |
114+ | ` -Vshow-member-pos <output style> ` | <i class =" fa fa-times fa-lg " ></i > |
115+ | ` -Vshow-object <object> ` | <i class =" fa fa-times fa-lg " ></i > |
116+ | ` -Vshow-symkinds ` | <i class =" fa fa-times fa-lg " ></i > |
117+ | ` -Vshow-symowners ` | <i class =" fa fa-times fa-lg " ></i > |
118+ | ` -Vstatistics <phases> ` | <i class =" fa fa-times fa-lg " ></i > |
119+ | ` -Vsymbols ` | <i class =" fa fa-times fa-lg " ></i > |
120+ | ` -Vtype-diffs ` | <i class =" fa fa-times fa-lg " ></i > |
121+ | ` -Vtyper ` | <i class =" fa fa-times fa-lg " ></i > |
122+
123+ ## Warning Settings
124+
125+ | 2.13.x | 3.3.x |
126+ | -| -|
127+ | ` -Wconf ` | <i class =" fa fa-check fa-lg " ></i > |
128+ | ` -Wdead-code ` | <i class =" fa fa-times fa-lg " ></i > |
129+ | ` -Werror ` | <i class =" fa fa-check fa-lg " ></i > |
130+ | ` -Wextra-implicit ` | <i class =" fa fa-times fa-lg " ></i > |
131+ | ` -Wmacros:<mode> ` | <i class =" fa fa-times fa-lg " ></i > |
132+ | ` -Wnonunit-if ` | <i class =" fa fa-times fa-lg " ></i > |
133+ | ` -Wnonunit-statement ` | <i class =" fa fa-check fa-lg " ></i > |
134+ | ` -Wnumeric-widen ` | <i class =" fa fa-times fa-lg " ></i > |
135+ | ` -Woctal-literal ` | <i class =" fa fa-times fa-lg " ></i > |
136+ | ` -Wopt ` | <i class =" fa fa-times fa-lg " ></i > |
137+ | ` -Wperformance ` | <i class =" fa fa-times fa-lg " ></i > |
138+ | ` -Wself-implicit ` | <i class =" fa fa-times fa-lg " ></i > |
139+ | ` -Wunused:<warnings> ` | <i class =" fa fa-check fa-lg " ></i > |
140+ | ` -Wvalue-discard ` | <i class =" fa fa-check fa-lg " ></i > |
141+
66142## Advanced Settings
67143
68- | 2.13.x | 3.0 .x |
144+ | 2.13.x | 3.3 .x |
69145| -| -|
70- | ` -X ` | <i class =" fa fa-check fa-lg " ></i >|
146+ | ` -Xasync ` | <i class =" fa fa-times fa-lg " ></i > |
71147| ` -Xcheckinit ` | ` -Ycheck-init ` |
72148| ` -Xdev ` | <i class =" fa fa-times fa-lg " ></i > |
73149| ` -Xdisable-assertions ` | <i class =" fa fa-times fa-lg " ></i > |
@@ -78,30 +154,25 @@ Each Scala 2.13 option is associated with its status in Scala 3.
78154| ` -Xjline ` | <i class =" fa fa-times fa-lg " ></i > |
79155| ` -Xlint:deprecation ` | ` -deprecation ` |
80156| ` -Xlint:<warnings> ` | <i class =" fa fa-times fa-lg " ></i > |
81- | ` -Xlog-implicit-conversion ` | <i class =" fa fa-times fa-lg " ></i > |
82- | ` -Xlog-implicits ` | <i class =" fa fa-times fa-lg " ></i > |
83- | ` -Xlog-reflective-calls ` | <i class =" fa fa-times fa-lg " ></i > |
84157| ` -Xmacro-settings ` | <i class =" fa fa-times fa-lg " ></i > |
85158| ` -Xmain-class ` | <i class =" fa fa-times fa-lg " ></i > |
86159| ` -Xmaxerrs ` | <i class =" fa fa-times fa-lg " ></i > |
87160| ` -Xmaxwarns ` | <i class =" fa fa-times fa-lg " ></i > |
88- | ` -Xmigration ` | <i class =" fa fa-check fa-lg " ></i >|
89- | ` -Xmixin-force-forwarders ` | <i class =" fa fa-check fa-lg " ></i >|
161+ | ` -Xmigration ` | <i class =" fa fa-check fa-lg " ></i >|
162+ | ` -Xmixin-force-forwarders ` | <i class =" fa fa-check fa-lg " ></i >|
90163| ` -Xno-forwarders ` | <i class =" fa fa-check fa-lg " ></i >|
91164| ` -Xno-patmat-analysis ` | <i class =" fa fa-times fa-lg " ></i > |
165+ | ` -Xnon-strict-patmat-analysis ` | <i class =" fa fa-times fa-lg " ></i > |
92166| ` -Xnojline ` | <i class =" fa fa-times fa-lg " ></i > |
93- | ` -Xplugin ` | <i class =" fa fa-check fa-lg " ></i >|
94- | ` -Xplugin-disable ` | <i class =" fa fa-check fa-lg " ></i >|
95- | ` -Xplugin-list ` | <i class =" fa fa-check fa-lg " ></i >|
96- | ` -Xplugin-require ` | <i class =" fa fa-check fa-lg " ></i >|
167+ | ` -Xplugin ` | <i class =" fa fa-check fa-lg " ></i >|
168+ | ` -Xplugin-disable ` | <i class =" fa fa-check fa-lg " ></i >|
169+ | ` -Xplugin-list ` | <i class =" fa fa-check fa-lg " ></i >|
170+ | ` -Xplugin-require ` | <i class =" fa fa-check fa-lg " ></i >|
97171| ` -Xpluginsdir ` | <i class =" fa fa-check fa-lg " ></i >|
98- | ` -Xprint-args ` | <i class =" fa fa-times fa-lg " ></i > |
99172| ` -Xprompt ` | <i class =" fa fa-check fa-lg " ></i >|
100173| ` -Xreporter ` | <i class =" fa fa-times fa-lg " ></i > |
101174| ` -Xresident ` | <i class =" fa fa-times fa-lg " ></i > |
102175| ` -Xscript ` | <i class =" fa fa-times fa-lg " ></i > |
103- | ` -Xshow-class <class> ` | <i class =" fa fa-times fa-lg " ></i > |
104- | ` -Xshow-object <object> ` | <i class =" fa fa-times fa-lg " ></i > |
105176| ` -Xsource ` | ` -source ` |
106177| ` -Xsource-reader ` | <i class =" fa fa-times fa-lg " ></i > |
107178| ` -Xverify ` | ` -Xverify-signatures ` |
@@ -121,14 +192,10 @@ Each Scala 2.13 option is associated with its status in Scala 3.
121192| ` -Ydelambdafy ` | <i class =" fa fa-times fa-lg " ></i > |
122193| ` -Ydump-classes ` | <i class =" fa fa-check fa-lg " ></i >|
123194| ` -Ygen-asmp ` | <i class =" fa fa-times fa-lg " ></i > |
124- | ` -Yhot-statistics ` | <i class =" fa fa-times fa-lg " ></i > |
125- | ` -Yide-debug ` | <i class =" fa fa-times fa-lg " ></i > |
126195| ` -Yimports ` | <i class =" fa fa-times fa-lg " ></i > |
127196| ` -Yissue-debug ` | <i class =" fa fa-times fa-lg " ></i > |
128197| ` -Yjar-compression-level ` | <i class =" fa fa-times fa-lg " ></i > |
129198| ` -YjarFactory ` | <i class =" fa fa-times fa-lg " ></i > |
130- | ` -Ymacro-debug-lite ` | <i class =" fa fa-times fa-lg " ></i > |
131- | ` -Ymacro-debug-verbose ` | <i class =" fa fa-times fa-lg " ></i > |
132199| ` -Ymacro-annotations ` | <i class =" fa fa-times fa-lg " ></i > |
133200| ` -Ymacro-classpath ` | <i class =" fa fa-times fa-lg " ></i > |
134201| ` -Ymacro-expand ` | <i class =" fa fa-times fa-lg " ></i > |
@@ -139,109 +206,37 @@ Each Scala 2.13 option is associated with its status in Scala 3.
139206| ` -Yno-imports ` | <i class =" fa fa-check fa-lg " ></i >|
140207| ` -Yno-predef ` | <i class =" fa fa-check fa-lg " ></i >|
141208| ` -Yopt-inline-heuristics ` | <i class =" fa fa-times fa-lg " ></i > |
142- | ` -Yopt-log-inline <package/Class.method> ` | <i class =" fa fa-times fa-lg " ></i > |
143- | ` -Yopt-trace <package/Class.method> ` | <i class =" fa fa-times fa-lg " ></i > |
144- | ` -Ypatmat-debug ` | <i class =" fa fa-times fa-lg " ></i > |
145209| ` -Ypatmat-exhaust-depth ` | <i class =" fa fa-times fa-lg " ></i > |
146- | ` -Ypos-debug ` | <i class =" fa fa-times fa-lg " ></i > |
147210| ` -Ypresentation-any-thread ` | <i class =" fa fa-times fa-lg " ></i > |
148211| ` -Ypresentation-debug ` | <i class =" fa fa-times fa-lg " ></i > |
149212| ` -Ypresentation-delay ` | <i class =" fa fa-times fa-lg " ></i > |
150213| ` -Ypresentation-locate-source-file ` | <i class =" fa fa-times fa-lg " ></i > |
151214| ` -Ypresentation-log ` | <i class =" fa fa-times fa-lg " ></i > |
215+ | ` -Ypresentation-replay ` | <i class =" fa fa-times fa-lg " ></i > |
152216| ` -Ypresentation-strict ` | <i class =" fa fa-times fa-lg " ></i > |
153217| ` -Ypresentation-verbose ` | <i class =" fa fa-times fa-lg " ></i > |
154218| ` -Yprint-trees ` | <i class =" fa fa-times fa-lg " ></i > |
155- | ` -Yprofile-destination ` | <i class =" fa fa-check fa-lg " ></i >|
219+ | ` -Yprofile-destination ` | <i class =" fa fa-check fa-lg " ></i >|
156220| ` -Yprofile-enabled ` | <i class =" fa fa-check fa-lg " ></i >|
221+ | ` -Yprofile-external-tool ` | <i class =" fa fa-check fa-lg " ></i >|
222+ | ` -Yprofile-run-gc ` | <i class =" fa fa-check fa-lg " ></i >|
157223| ` -Yprofile-trace ` | <i class =" fa fa-times fa-lg " ></i > |
158- | ` -Yquasiquote-debug ` | <i class =" fa fa-times fa-lg " ></i > |
159224| ` -Yrangepos ` | <i class =" fa fa-times fa-lg " ></i > |
160225| ` -Yrecursion ` | <i class =" fa fa-times fa-lg " ></i > |
161226| ` -Yreify-copypaste ` | <i class =" fa fa-times fa-lg " ></i > |
162- | ` -Yreify-debug ` | <i class =" fa fa-times fa-lg " ></i > |
163227| ` -Yrepl-class-based ` | <i class =" fa fa-times fa-lg " ></i > |
164228| ` -Yrepl-outdir ` | <i class =" fa fa-times fa-lg " ></i > |
165229| ` -Yrepl-use-magic-imports ` | <i class =" fa fa-times fa-lg " ></i > |
166230| ` -Yresolve-term-conflict ` | <i class =" fa fa-check fa-lg " ></i >|
231+ | ` -Yscala3-implicit-resolution ` | <i class =" fa fa-times fa-lg " ></i > |
167232| ` -Yscriptrunner ` | <i class =" fa fa-times fa-lg " ></i > |
168- | ` -Yskip ` | <i class =" fa fa-check fa-lg " ></i >|
169- | ` -Yshow:<phases> ` | <i class =" fa fa-times fa-lg " ></i > |
170- | ` -Yshow-member-pos <output style> ` | <i class =" fa fa-times fa-lg " ></i > |
171- | ` -Yshow-symkinds ` | <i class =" fa fa-times fa-lg " ></i > |
172- | ` -Yshow-symowners ` | <i class =" fa fa-times fa-lg " ></i > |
173- | ` -Yshow-syms ` | <i class =" fa fa-times fa-lg " ></i > |
174- | ` -Ystatistics <phases> ` | <i class =" fa fa-times fa-lg " ></i > |
175- | ` -Ystop-after ` | <i class =" fa fa-check fa-lg " ></i >|
176- | ` -Ystop-before ` | <i class =" fa fa-check fa-lg " ></i >|
177- | ` -Ytyper-debug ` | <i class =" fa fa-times fa-lg " ></i > |
233+ | ` -Yskip ` | <i class =" fa fa-check fa-lg " ></i >|
234+ | ` -Ystop-after ` | <i class =" fa fa-check fa-lg " ></i >|
235+ | ` -Ystop-before ` | <i class =" fa fa-check fa-lg " ></i >|
236+ | ` -Ytasty-no-annotations ` | <i class =" fa fa-times fa-lg " ></i > |
237+ | ` -Ytasty-reader ` | <i class =" fa fa-times fa-lg " ></i > |
238+ | ` -Ytrack-dependencies ` | <i class =" fa fa-times fa-lg " ></i > |
178239| ` -Yvalidate-pos ` | <i class =" fa fa-times fa-lg " ></i > |
179- | ` -Ywarn-dead-code ` | <i class =" fa fa-times fa-lg " ></i > |
180- | ` -Ywarn-numeric-widen ` | <i class =" fa fa-times fa-lg " ></i > |
181- | ` -Ywarn-unused:<warnings> ` | <i class =" fa fa-times fa-lg " ></i > |
182- | ` -Ywarn-value-discard ` | <i class =" fa fa-times fa-lg " ></i > |
183-
184- ## Verbose Settings
185-
186- Verbose settings were introduced in 2.13.
187- Most of them are not yet implemented in Scala 3.
188-
189- | 2.13.x | 3.0.x |
190- | -| -|
191- | ` -Vbrowse:<phases> ` | <i class =" fa fa-times fa-lg " ></i > |
192- | ` -Vdebug-tasty ` | <i class =" fa fa-times fa-lg " ></i > |
193- | ` -Vdoc ` | <i class =" fa fa-times fa-lg " ></i > |
194- | ` -Vfree-terms ` | <i class =" fa fa-times fa-lg " ></i > |
195- | ` -Vfree-types ` | <i class =" fa fa-times fa-lg " ></i > |
196- | ` -Vhot-statistics ` | <i class =" fa fa-times fa-lg " ></i > |
197- | ` -Vide ` | <i class =" fa fa-times fa-lg " ></i > |
198- | ` -Vimplicit-conversions ` | <i class =" fa fa-times fa-lg " ></i > |
199- | ` -Vimplicits ` | <i class =" fa fa-times fa-lg " ></i > |
200- | ` -Vinline <package/Class.method> ` | <i class =" fa fa-times fa-lg " ></i > |
201- | ` -Vissue ` | <i class =" fa fa-times fa-lg " ></i > |
202- | ` -Vmacro ` | <i class =" fa fa-times fa-lg " ></i > |
203- | ` -Vmacro-lite ` | <i class =" fa fa-times fa-lg " ></i > |
204- | ` -Vopt <package/Class.method> ` | <i class =" fa fa-times fa-lg " ></i > |
205- | ` -Vpatmat ` | <i class =" fa fa-times fa-lg " ></i > |
206- | ` -Vpos ` | <i class =" fa fa-times fa-lg " ></i > |
207- | ` -Vprint:<phases> ` | ` -Xprint:<phases> ` |
208- | ` -Vphases ` | ` -Xshow-phases ` |
209- | ` -Vclasspath ` | ` -Ylog-classpath ` |
210- | ` -Vlog:<phases> ` | ` -Ylog:<phases> ` |
211- | ` -Vdebug ` | ` -Ydebug ` |
212- | ` -Vprint-args <file> ` | <i class =" fa fa-times fa-lg " ></i > |
213- | ` -Vprint-pos ` | ` -Yprint-pos ` |
214- | ` -Vprint-types ` | ` -Xprint-types ` |
215- | ` -Vquasiquote ` | <i class =" fa fa-times fa-lg " ></i > |
216- | ` -Vreflective-calls ` | <i class =" fa fa-times fa-lg " ></i > |
217- | ` -Vreify ` | <i class =" fa fa-times fa-lg " ></i > |
218- | ` -Vshow:<phases> ` | <i class =" fa fa-times fa-lg " ></i > |
219- | ` -Vshow-class <class> ` | <i class =" fa fa-times fa-lg " ></i > |
220- | ` -Vshow-member-pos <output style> ` | <i class =" fa fa-times fa-lg " ></i > |
221- | ` -Vshow-object <object> ` | <i class =" fa fa-times fa-lg " ></i > |
222- | ` -Vshow-symkinds ` | <i class =" fa fa-times fa-lg " ></i > |
223- | ` -Vshow-symowners ` | <i class =" fa fa-times fa-lg " ></i > |
224- | ` -Vstatistics <phases> ` | <i class =" fa fa-times fa-lg " ></i > |
225- | ` -Vsymbols ` | <i class =" fa fa-times fa-lg " ></i > |
226- | ` -Vtyper ` | <i class =" fa fa-times fa-lg " ></i > |
227-
228- ## Warning Settings
229-
230- Warning settings were introduced in 2.13.
231- Most of them are not yet implemented in Scala 3.
232-
233- | 2.13.x | 3.0.x |
234- | -| -|
235- | ` -Wconf ` | <i class =" fa fa-times fa-lg " ></i > |
236- | ` -Wdead-code ` | <i class =" fa fa-times fa-lg " ></i > |
237- | ` -Werror ` | ` -Xfatal-warnings ` |
238- | ` -Wextra-implicit ` | <i class =" fa fa-times fa-lg " ></i > |
239- | ` -Wmacros:<mode> ` | <i class =" fa fa-times fa-lg " ></i > |
240- | ` -Wnumeric-widen ` | <i class =" fa fa-times fa-lg " ></i > |
241- | ` -Woctal-literal ` | <i class =" fa fa-times fa-lg " ></i > |
242- | ` -Wunused:<warnings> ` | <i class =" fa fa-times fa-lg " ></i > |
243- | ` -Wvalue-discard ` | <i class =" fa fa-times fa-lg " ></i > |
244- | ` -Wself-implicit ` | <i class =" fa fa-times fa-lg " ></i > |
245240
246241## Compiler Plugins
247242
0 commit comments