6ef434a711
Since KotlinTypeMapper is no longer used in the JVM IR backend, we need
not run CodegenBinding.initTrace and check that names of local entities
are exactly equal to local names computed by that algorithm.
However, it's still useful as an opt-in flag, to discover issues where
unwanted elements take part in the naming (such as temporary IR
variables, see for example cb2e68fece). So we introduce a new command
line argument -Xir-check-local-names which, when the IR backend is used
(via -Xuse-ir), launches the name computation algorithm from the old
backend and then compares that the names are exactly equal to the names
computed by the IR backend in InventNamesForLocalClasses.
118 lines
9.5 KiB
Plaintext
Vendored
118 lines
9.5 KiB
Plaintext
Vendored
Usage: kotlinc-jvm <options> <source files>
|
|
where advanced options include:
|
|
-Xadd-modules=<module[,]> Root modules to resolve in addition to the initial modules,
|
|
or all modules on the module path if <module> is ALL-MODULE-PATH
|
|
-Xallow-no-source-files Allow no source files
|
|
-Xassertions={always-enable|always-disable|jvm|legacy}
|
|
Assert calls behaviour
|
|
-Xassertions=always-enable: enable, ignore jvm assertion settings;
|
|
-Xassertions=always-disable: disable, ignore jvm assertion settings;
|
|
-Xassertions=jvm: enable, depend on jvm assertion settings;
|
|
-Xassertions=legacy: calculate condition on each call, check depends on jvm assertion settings in the kotlin package;
|
|
default: legacy
|
|
-Xbuild-file=<path> Path to the .xml build file to compile
|
|
-Xcompile-java Reuse javac analysis and compile Java source files
|
|
-Xnormalize-constructor-calls={disable|enable}
|
|
Normalize constructor calls (disable: don't normalize; enable: normalize),
|
|
default is 'disable' in language version 1.2 and below,
|
|
'enable' since language version 1.3
|
|
-Xdump-declarations-to=<path> Path to JSON file to dump Java to Kotlin declaration mappings
|
|
-Xdisable-default-scripting-plugin
|
|
Do not enable scripting plugin by default
|
|
-Xdisable-standard-script Disable standard kotlin script support
|
|
-Xfriend-paths=<path> Paths to output directories for friend modules (whose internals should be visible)
|
|
-Xmultifile-parts-inherit Compile multifile classes as a hierarchy of parts and facade
|
|
-Xir-check-local-names Check that names of local classes and anonymous objects are the same in the IR backend as in the old backend
|
|
-Xmodule-path=<path> Paths where to find Java 9+ modules
|
|
-Xjava-package-prefix Package prefix for Java files
|
|
-Xjava-source-roots=<path> Paths to directories with Java source files
|
|
-Xjavac-arguments=<option[,]> Java compiler arguments
|
|
-Xjsr305={ignore/strict/warn}|under-migration:{ignore/strict/warn}|@<fq.name>:{ignore/strict/warn}
|
|
Specify behavior for JSR-305 nullability annotations:
|
|
-Xjsr305={ignore/strict/warn} globally (all non-@UnderMigration annotations)
|
|
-Xjsr305=under-migration:{ignore/strict/warn} all @UnderMigration annotations
|
|
-Xjsr305=@<fq.name>:{ignore/strict/warn} annotation with the given fully qualified class name
|
|
Modes:
|
|
* ignore
|
|
* strict (experimental; treat as other supported nullability annotations)
|
|
* warn (report a warning)
|
|
-Xjvm-default={disable|enable|compatibility}
|
|
Allow to use '@JvmDefault' annotation for JVM default method support.
|
|
-Xjvm-default=disable Prohibit usages of @JvmDefault
|
|
-Xjvm-default=enable Allow usages of @JvmDefault; only generate the default method
|
|
in the interface (annotating an existing method can break binary compatibility)
|
|
-Xjvm-default=compatibility Allow usages of @JvmDefault; generate a compatibility accessor
|
|
in the 'DefaultImpls' class in addition to the interface method
|
|
-Xno-call-assertions Don't generate not-null assertions for arguments of platform types
|
|
-Xno-exception-on-explicit-equals-for-boxed-null
|
|
Do not throw NPE on explicit 'equals' call for null receiver of platform boxed primitive type
|
|
-Xno-optimize Disable optimizations
|
|
-Xno-param-assertions Don't generate not-null assertions on parameters of methods accessible from Java
|
|
-Xno-receiver-assertions Don't generate not-null assertion for extension receiver arguments of platform types
|
|
-Xsanitize-parentheses Transform '(' and ')' in method names to some other character sequence.
|
|
This mode can BREAK BINARY COMPATIBILITY and is only supposed to be used to workaround
|
|
problems with parentheses in identifiers on certain platforms
|
|
-Xscript-resolver-environment=<key=value[,]>
|
|
Script resolver environment in key-value pairs (the value could be quoted and escaped)
|
|
-Xsingle-module Combine modules for source files and binary dependencies into a single module
|
|
-Xskip-runtime-version-check Allow Kotlin runtime libraries of incompatible versions in the classpath
|
|
-Xstrict-java-nullability-assertions
|
|
Generate nullability assertions for non-null Java expressions
|
|
-Xgenerate-strict-metadata-version
|
|
Generate metadata with strict version semantics (see kdoc on Metadata.extraInt)
|
|
-Xsupport-compatqual-checker-framework-annotations=enable|disable
|
|
Specify behavior for Checker Framework compatqual annotations (NullableDecl/NonNullDecl).
|
|
Default value is 'enable'
|
|
-Xsuppress-missing-builtins-error
|
|
Suppress the "cannot access built-in declaration" error (useful with -no-stdlib)
|
|
-Xuse-ir Use the IR backend
|
|
-Xuse-javac Use javac for Java source and class files analysis
|
|
-Xuse-old-class-files-reading Use old class files reading implementation. This may slow down the build and cause problems with Groovy interop.
|
|
Should be used in case of problems with the new implementation
|
|
-Xuse-type-table Use type table in metadata serialization
|
|
-Xallow-kotlin-package Allow compiling code in package 'kotlin' and allow not requiring kotlin.stdlib in module-info
|
|
-Xallow-result-return-type Allow compiling code when `kotlin.Result` is used as a return type
|
|
-Xcheck-phase-conditions Check pre- and postconditions on phases
|
|
-Xcheck-sticky-phase-conditions
|
|
Run sticky condition checks on subsequent phases as well. Implies -Xcheck-phase-conditions
|
|
-Xcommon-sources=<path> Sources of the common module that need to be compiled together with this module in the multi-platform mode.
|
|
Should be a subset of sources passed as free arguments
|
|
-Xcoroutines={enable|warn|error}
|
|
Enable coroutines or report warnings or errors on declarations and use sites of 'suspend' modifier
|
|
-Xdisable-phases Disable backend phases
|
|
-Xdump-directory Dump backend state into directory
|
|
-Xdump-fqname FqName of declaration that should be dumped
|
|
-Xdump-perf=<path> Dump detailed performance statistics to the specified file
|
|
-Xeffect-system Enable experimental language feature: effect system
|
|
-Xexperimental=<fq.name> Enable and propagate usages of experimental API for marker annotation with the given fully qualified name
|
|
-Xinline-classes Enable experimental inline classes
|
|
-Xintellij-plugin-root=<path> Path to the kotlin-compiler.jar or directory where IntelliJ configuration files can be found
|
|
-Xlegacy-smart-cast-after-try Allow var smart casts despite assignment in try block
|
|
-Xlist-phases List backend phases
|
|
-Xmetadata-version Change metadata version of the generated binary files
|
|
-Xmulti-platform Enable experimental language support for multi-platform projects
|
|
-Xexclude-from-dumping Names of elements that should not be dumped
|
|
-Xnew-inference Enable new experimental generic type inference algorithm
|
|
-Xno-check-actual Do not check presence of 'actual' modifier in multi-platform projects
|
|
-Xno-inline Disable method inlining
|
|
-Xphases-to-dump Dump backend state both before and after these phases
|
|
-Xphases-to-dump-after Dump backend state after these phases
|
|
-Xphases-to-dump-before Dump backend state before these phases
|
|
-Xphases-to-validate Validate backend state both before and after these phases
|
|
-Xphases-to-validate-after Validate backend state after these phases
|
|
-Xphases-to-validate-before Validate backend state before these phases
|
|
-Xplugin=<path> Load plugins from the given classpath
|
|
-Xpolymorphic-signature Enable experimental support for @PolymorphicSignature (MethodHandle/VarHandle)
|
|
-Xprofile-phases Profile backend phases
|
|
-Xproper-ieee754-comparisons Generate proper IEEE 754 comparisons in all cases if values are statically known to be of primitive numeric types
|
|
-Xread-deserialized-contracts Enable reading of contracts from metadata
|
|
-Xreport-output-files Report source to output files mapping
|
|
-Xreport-perf Report detailed performance statistics
|
|
-Xskip-metadata-version-check Load classes with bad metadata version anyway (incl. pre-release classes)
|
|
-Xuse-experimental=<fq.name> Enable, but don't propagate usages of experimental API for marker annotation with the given fully qualified name
|
|
-Xuse-fir Compile using Front-end IR. Warning: this feature is far from being production-ready
|
|
-Xverbose-phases Be verbose while performing these backend phases
|
|
|
|
Advanced options are non-standard and may be changed or removed without any notice.
|
|
OK
|