The evaluated type of 'decltype(auto)' in combination with const and/or
volatile will be a ProblemType since this is not valid code. The patch
also contains a checker to give the user a visual feedback.
Note: A proposed quick-fix has been removed after a short discussion.
Change-Id: I8760ed0ac28e28529ab30516accac9c0413c87d9
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
Removed the empty debug.core.tests project. Also removed the
utils-feature and remote-feature projects since these shouldn't
be features.
Change-Id: Ib5d297c626de5328e3421a1fc9346330d9907750
In the process, the (problematic) assumption the function previously
made that a marker's resource will be a file, has been removed.
Change-Id: I657e1e99d9b06921558ca13960b4fd3ad554911d
- add IOptionalBuildObjectPropertiesContainer interface to use for
objects that supply optional build properties
- add new IOptionalBuildProperties interface that defines
optional build properties donated by external plug-ins
- add new
- change IConfiguration to an IOptionalBuildObjectPropertiesContainer
- change IManagedProject to be an
IOptionalBuildObjectPropertiesContainer
- fix ProcessClosure to ensure that readers are not null before
accessing them
- fix Container launch delegate to look at project optional
build properties for active configuration to fetch connection
and image info and use said info to find a matching
launch or create a new one
- have Container launch delegate use the image name as part of
the launch config name
- have Container launch short-cut also use the project's
optional build properties for the active config to get
connection and image information before any defaulting
- change AutotoolsNewMarkerGenerator to store the command
launcher as an ICommandLauncher
- add new CommandLauncherFactory extension to cdt.core that
allows plug-ins to specify a CommandLauncherFactory that
will return an ICommandLauncher based on the project
- add macros for new extension to CCorePlugin
- add new CommandLauncherManager class that loads
CommandLauncherFactory extensions and is used to give
an ICommandLauncher wrapper that will go through the list
of CommandLauncherFactory extensions until one returns
non-null ICommandLauncher
- add code to RemoteCommandLauncher so it will use the
CommandLauncherManager to get the local launcher
- also change RemoteCommandLauncher to check at execution
time whether the command is local and in that case use
the local command launcher
- add new ICommandLauncherFactory interface
- add new ContainerCommandLauncher to launch
- add new ContainerCommandLauncherFactory class for returning
a ContainerCommandLauncher instance to launch commands
in a Docker Container
- change MakeBuilder to use CommandLauncherManager to get
its ICommandLauncher
- change CommandBuilder to use CommandLauncherManager too
- ditto for Builder and AbstractBuiltinSpecsDetector and
ExternalToolInvoker
- change Configuration to load/store optional build properties
as well as return the properties to get/set
- ditto for MultiConfiguration
- change ManagedProject to implement IOptionalBuildOptionProperties
interface
- ditto for ProjectType
- create new OptionalBuildProperties class to store optional
build properties for a configuration
- bump cdt.docker.launcher to 1.1.0
- use CommandLauncherFactory extension to define
ContainerCommandLauncherFactory
- add optional ContainerPropertyTab which allows the end-user to
optionally choose to build a C/C++ project in a Container
and specify the connection/image to use
- in LanguageSettingsSerializableSettings class, call the
CommandLauncherManager getLanguageSettingEntries method
to get the massaged language setting entries based on the
current list
- in LanguageSettingsProviderSerializer, try and get the
pooled entries using the cfg description so that it will
have the project and can use the CommandLauncherManager
to get entries from image
- in ContainerCommandLauncherFactory move cached headers under
a HEADERS directory in the plug-in area
- create a sub-directory for the connection and a sub-directory
for the image based on cleansed names
- store the real names of the connection and image to use
later in the DockerHeaderPreferencePage
- modify LanguageSettingsEntriesTab to force the horizontal
scroll bar to appear (this is a bug in SWT SashForm support
and the fix here isn't quite correct, but is better)
- add new DockerHeaderPreferencePage that allows user to
remove cached headers from images
- change C/C++ Docker preferences to be titled: Docker Container
- fix LanguageSettingsWorkspaceProvider.getSettingEntries method
to use the CommandLauncherManager so entries will be transformed
to use cached headers
- add BaseDatabindingModel class
- add DataVolumeModel class to model a volume mount
- add ContainerPropertyVolumes model to model volume specification
and selected volumes
- add properties to ContainerCommandLauncher to represent
volumes and selected volumes for a configuration
- add ContainerDataVolumeDialog for specifying a volume
mount by the end-user
- add a null detector for cfgDescription in
LanguageSettingsSerializableProvider
- fix AutotoolsNewMakeGenerator.getWinOSType to not specify "." for
working dir
- fix GCCBuiltinSpecsDetectorCygwin to not map paths to Cygwin if
the current configuration is enabled for container build
- add logic to ContainerCommandLauncher to look for Windows
file formats and change them to unix format and map
any "." working dir to be /tmp
- fix ContainerLauncherConfigurationDelegate similarly
- fix AbstractBuiltinSpecsDetector to pass in the current
configuration description when getting the CommandLauncher
since the current configuration may not be the active
configuration
- change ContainerPropertyTab to add Elf and GNU Elf binary parsers
when build in Container is chosen so that output executables
are treated as Binaries by the CDT project
- add documentationl for the ContainerPropertyTab in Build Settings and
the Data Volume dialog pop-up it brings up
- change CommandBuilder to accept a project as an argument
to its constructor and to pass this as an argument to
the CommandLauncherManager
- have StepBuilder pass project when creating a CommandBuilder
Change-Id: Ia78488b93056e6ec7ca83a6c87b3a9d2b9424943
Using IPath.toPortableString() was causing a forward slash vs.
backward slash mismtach in the path comparison on Windows.
Change-Id: Ib3eb392065fb473f6b6e70cb1dcddceb34ae7240
Also restructures the pom.xmls to put the modules in the top level
so we can order them to have the test plugins build after them.
Change-Id: I2f0e4ebd252791fb8844cdf0f635d574946207aa
Changed isApplicable to not retrieve the TU from the editor if it is not
open. Applying the quick fix will still open the editor.
Change-Id: Ib328ffa2054145eda8b2e72fe646fca2e7fc7905
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
Specifically, this patch:
- Adds support for a new builtin, __builtin_assume_aligned.
- Models __builtin_constant_p as a function instead of a macro.
This inhibits constexpr evaluation, but allows for correct
type-checking.
- Diagnoses misuses of known builtins, instead of ingoring them like
unknown builtins.
Change-Id: Ie5a26f2010dc5b19e6f32a8c6a1237fe88da393e
and provide quickfix for adding fallthrough attribute
and add JUnit Tests
and add StandardAttributes class
Change-Id: I8cf0238771dc92bd1784b9dfb35a680d078b1db6
Depends-On: Ic09aa96f896b0a5dd998156e05930704775f695b
Signed-off-by: Rolf Bislin <romibi@bluewin.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
- add new FixitErrorParser that extends RegexErrorParser and is
used to replace the error parser for GNUCErrorParser
- add new FixManager class to bind a fixit message with its
problem marker
- modify ProblemMarkerFilterManager to register the last
accepted ProblemMarkerInfo for a particular resource so
the FixitErrorParser can find the last error marker for
the file that precedes the fixit message
- FixitErrorParser looks for fix-it messages and binds them
via FixitManager to the last error marker for the file
- add new Fixit class to contain the details of a gcc fix-it
- add new QuickFixForFixit which applies the gcc fix-it for the
file
- add new (.*) regex in codan.ui.checkers patterns that will
trigger before any other error and will look for the
fix-it message format
- change cdt.core to expose cdt.internal.errorparsers to
codan.checkers.ui
- change codan.core to expose codan.internal.core.model to
codan.checkers.ui
- fix CDocumentProvider.setOverlay method to not overlay
a CMarkerAnnotation that has a quick fix
- when deleting all C problem markers, also make a call
to FixManager.deleteAllMarkers() so markers aren't
left referenced
Change-Id: Ibf8ff7d8addb1bf092dc4ef35de0d92de0309589
This removes a lot of pom.xml from the source tree. This is using the
"POM-less" Tycho functionality.
See
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds
One advantage of this is that you do not need to update the version in
the pom.xml when you change it in the MANIFEST.MF because the pom.xml is
automatically generated. This also reduces a lot of the duplicated
information and pom.xml repetition.
- Maven 3.3 and up is required.
- Only eclipse-plugins and eclipse-features can be pom-less.
Repositories, target and others still have pom.xml.
- New parent poms are added because a parent is necessary directly one
level above the plug-in/feature that will have its pom generated
- Some test plug-ins had to be renamed .test -> .tests because it's
required so that it detects that it's a test plug-in
- Some suites were renamed so that they all use the same consistent name
"AutomatedIntegrationSuite"
- Profiles were added for the more common test configurations. They are
activated by the presence of simple .properties files that only serve to
activate the correct profile. The profiles:
- One for UI tests (UI present and start in UI thread)
- One for SWTBot tests (UI present and do not start in UI thread)
Other test plug-ins that are too different are kept intact and still
have
a pom.xml
- Fragments are kept intact since they all have different target
platform configurations
Change-Id: I9d73380eb766f547830c552daf08053a30b1845c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
- change codanMarkerResolution schema to support translatable
regex statements for matching
- bump cdt.codan.ui version
- add additional codanMarkerResolution extensions to codan.checkers.ui
to handle some basic gcc error messages with quick fixes
- add QuickFixAddSemicolon, QuickFixRenameMember,
QuickFixUseDotOperator, and QuickFixUsePointer classes
- add new QuickFixMessages
- add plugin.properties to cdt.codan.checkers.ui to allow the quick
fix regex matchers to be translated in the future
- change the generic error message for gcc error parser so that the
column is reported as the problem variable (useful for certain
quick fix resolutions)
- bump up cdt.core
Change-Id: Ibb24c1a79c4d91ead3fc629ea3d4e7425b4e7f23
- Reuse the TU from the open editor if present, otherwise load it from
workspace
- Added test plugin org.eclipse.cdt.codan.checkers.ui.test
Change-Id: I725b7b8e462ffba39dd6c9a828ab72dd58f86b1f
Signed-off-by: Dominic Scharfe <dominic.scharfe@coseda-tech.com>
Build Console needs to be started before
OutputStream and ErrorStream are retrieved for the Sniffer.
Change-Id: I1aea84ca9fa2e6806cb07513bb2c9cad47c11617
Signed-off-by: Dan Crosscup <tunzis@gmail.com>
When using a `StringBuilder` or `StringBuffer` to create a string message,
using implicit string concatenation inside an `.append()` call will
create a nested StringBuilder for the purposes of creating the arguments,
which will subsequently be converted to a String and then passed to
the outer StringBuilder.
Skip the creation of the intermediate object and String by simply
replacing such calls with `buffer.append(a).append(b)`.
Where values are compile time String constants, leave as is so
that the javac compiler can perform compile-time String concatenation.
Ensure that NEWLINE isn't appended in such a way since it is not
a compile time constant `System.getProperty("line.separator")`
Change-Id: I4126aefb2272f06b08332e004d7ea76b6f02cdba
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
There are many opportunities for replacing `StringBuffer` with
`StringBuilder` provided that the type isn't visible from the
public API and is used only in internal methods. Replace these
where appropriate.
Change-Id: Ic2f50c5b6f3c3a4eae301bb3b40fb6faed235f79
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
In many cases a String's empty status is tested with `.equals("")`.
However, Java 1.6 added `.isEmpty()` which can be more efficient since
it compares the internal length parameter only for testing. Replace
code using the `.isEmpty()` variant instead.
Some tests for `"".equals(expr)` can be replaced with `expr.isEmpty()`
where it is already known that the `expr` is not null; however,
these have to be reviewed on a case-by-case basis.
Change-Id: I3c6af4d8b7638e757435914ac76cb3a67899a5fd
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.
Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.
Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
Every time we report a problem in a declaration/expression that occupies more
than one line, the codan marks the entire line as a problem - including
everything before the node. This patch solves this inconvenient behavior.
See https://bugs.eclipse.org/bugs/show_bug.cgi?id=486610 for a complete
explanation.
Change-Id: I742cbaac8a1392676695d574355597b0cfc87385
Signed-off-by: Alisson Linhares de Carvalho <arescarv@gmail.com>