microsoft / microsoft/vscode-cpptools

constexpr erroneous intellisense problem

Aperta
#5,279 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug Language Service Visual Studio
Lingua principale
TypeScript
Stelle
6.2k
Fork
1.7k
Merge medio
14h 46m
PR unite (30g)
61

Descrizione

Type: LanguageService

Describe the bug

  • OS and Version: Ubuntu 18.04
    Linux 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • VS Code Version: 1.44.0
  • C/C++ Extension Version: 0.27.0
  • Other extensions you installed (and if the issue persists after disabling them): Several but the issue persist after disabling them
  • Does this issue involve using SSH remote to run the extension on a remote machine?: no
  • A clear and concise description of what the bug is, including information about the workspace (i.e. is the workspace a single project or multiple projects, size of the project, etc).

A constexpr assignment based on a class member variable (Eigen::Matrix2d) generates an erroneous Intellisense problem ('this' cannot be used in a constant expression). The code compiles successfully with gcc 7.5 even when using -Wall -Werror.

Steps to reproduce
Minimal example:

#include <iostream>
#include <Eigen/Core>
class Foo
{
	Eigen::Matrix2d mat1;
public:
	void matsize();
};
void Foo::matsize()
{
	constexpr int colsize_ = mat1.ColsAtCompileTime;
	std::cout << "colsize: " << colsize_ << std::endl;
}
int main()
{
	Foo test1;
	test1.matsize();
}

Expected behavior
No error given by Intellisense

Logs
1. Log Diagnostics
-------- Diagnostics - 4/10/2020, 6:01:32 PM
Version: 0.27.0
Current Configuration:
{
    "name": "Linux",
    "includePath": [
        "${workspaceFolder}/**",
        "/usr/include/eigen3/"
    ],
    "defines": [],
    "compilerPath": "/usr/bin/gcc",
    "cStandard": "c11",
    "cppStandard": "c++11",
    "compilerArgs": [],
    "intelliSenseMode": "gcc-x64",
    "browse": {
        "path": [
            "${workspaceFolder}/**",
            "/usr/include/eigen3/"
        ],
        "limitSymbolsToIncludedHeaders": true
    }
}
Translation Unit Mappings:
[ /home/user/tests/constexprex.cpp ]:
    /home/user/tests/constexprex.cpp
Translation Unit Configurations:
[ /home/user/tests/constexprex.cpp ]:
    Process ID: 17957
    Memory Usage: 172 MB
    Compiler Path: /usr/bin/gcc
    Includes:
        /usr/include/eigen3
        /usr/include/c++/7
        /usr/include/x86_64-linux-gnu/c++/7
        /usr/include/c++/7/backward
        /usr/lib/gcc/x86_64-linux-gnu/7/include
        /usr/local/include
        /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
        /usr/include/x86_64-linux-gnu
        /usr/include
    Standard Version: c++11
    IntelliSense Mode: gcc-x64
    Other Flags:
        --g++
        --gnu_version=70500
Total Memory Usage: 172 MB

2. Log from the language server
sending compilation args for /home/user/tests/constexprex.cpp
  include: /usr/include/eigen3
  include: /usr/include/c++/7
  include: /usr/include/x86_64-linux-gnu/c++/7
  include: /usr/include/c++/7/backward
  include: /usr/lib/gcc/x86_64-linux-gnu/7/include
  include: /usr/local/include
  include: /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
  include: /usr/include/x86_64-linux-gnu
  include: /usr/include
  define: __STDC__=1
  define: __cplusplus=201103L
  define: __STDC_UTF_16__=1
  define: __STDC_UTF_32__=1
  define: __STDC_HOSTED__=1
  define: __GNUC__=7
  define: __GNUC_MINOR__=5
  define: __GNUC_PATCHLEVEL__=0
  define: __VERSION__="7.5.0"
  define: __ATOMIC_RELAXED=0
  define: __ATOMIC_SEQ_CST=5
  define: __ATOMIC_ACQUIRE=2
  define: __ATOMIC_RELEASE=3
  define: __ATOMIC_ACQ_REL=4
  define: __ATOMIC_CONSUME=1
  define: __pic__=2
  define: __PIC__=2
  define: __pie__=2
  define: __PIE__=2
  define: __FINITE_MATH_ONLY__=0
  define: _LP64=1
  define: __LP64__=1
  define: __SIZEOF_INT__=4
  define: __SIZEOF_LONG__=8
  define: __SIZEOF_LONG_LONG__=8
  define: __SIZEOF_SHORT__=2
  define: __SIZEOF_FLOAT__=4
  define: __SIZEOF_DOUBLE__=8
  define: __SIZEOF_LONG_DOUBLE__=16
  define: __SIZEOF_SIZE_T__=8
  define: __CHAR_BIT__=8
  define: __BIGGEST_ALIGNMENT__=16
  define: __ORDER_LITTLE_ENDIAN__=1234
  define: __ORDER_BIG_ENDIAN__=4321
  define: __ORDER_PDP_ENDIAN__=3412
  define: __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__
  define: __SIZEOF_POINTER__=8
  define: __GNUG__=7
  define: __SIZE_TYPE__=long unsigned int
  define: __PTRDIFF_TYPE__=long int
  define: __WCHAR_TYPE__=int
  define: __WINT_TYPE__=unsigned int
  define: __INTMAX_TYPE__=long int
  define: __UINTMAX_TYPE__=long unsigned int
  define: __CHAR16_TYPE__=short unsigned int
  define: __CHAR32_TYPE__=unsigned int
  define: __SIG_ATOMIC_TYPE__=int
  define: __INT8_TYPE__=signed char
  define: __INT16_TYPE__=short int
  define: __INT32_TYPE__=int
  define: __INT64_TYPE__=long int
  define: __UINT8_TYPE__=unsigned char
  define: __UINT16_TYPE__=short unsigned int
  define: __UINT32_TYPE__=unsigned int
  define: __UINT64_TYPE__=long unsigned int
  define: __INT_LEAST8_TYPE__=signed char
  define: __INT_LEAST16_TYPE__=short int
  define: __INT_LEAST32_TYPE__=int
  define: __INT_LEAST64_TYPE__=long int
  define: __UINT_LEAST8_TYPE__=unsigned char
  define: __UINT_LEAST16_TYPE__=short unsigned int
  define: __UINT_LEAST32_TYPE__=unsigned int
  define: __UINT_LEAST64_TYPE__=long unsigned int
  define: __INT_FAST8_TYPE__=signed char
  define: __INT_FAST16_TYPE__=long int
  define: __INT_FAST32_TYPE__=long int
  define: __INT_FAST64_TYPE__=long int
  define: __UINT_FAST8_TYPE__=unsigned char
  define: __UINT_FAST16_TYPE__=long unsigned int
  define: __UINT_FAST32_TYPE__=long unsigned int
  define: __UINT_FAST64_TYPE__=long unsigned int
  define: __INTPTR_TYPE__=long int
  define: __UINTPTR_TYPE__=long unsigned int
  define: __GXX_WEAK__=1
  define: __DEPRECATED=1
  define: __GXX_RTTI=1
  define: __GXX_EXPERIMENTAL_CXX0X__=1
  define: __EXCEPTIONS=1
  define: __GXX_ABI_VERSION=1011
  define: __SCHAR_MAX__=0x7f
  define: __SHRT_MAX__=0x7fff
  define: __INT_MAX__=0x7fffffff
  define: __LONG_MAX__=0x7fffffffffffffffL
  define: __LONG_LONG_MAX__=0x7fffffffffffffffLL
  define: __WCHAR_MAX__=0x7fffffff
  define: __WCHAR_MIN__=(-__WCHAR_MAX__ - 1)
  define: __WINT_MAX__=0xffffffffU
  define: __WINT_MIN__=0U
  define: __PTRDIFF_MAX__=0x7fffffffffffffffL
  define: __SIZE_MAX__=0xffffffffffffffffUL
  define: __SCHAR_WIDTH__=8
  define: __SHRT_WIDTH__=16
  define: __INT_WIDTH__=32
  define: __LONG_WIDTH__=64
  define: __LONG_LONG_WIDTH__=64
  define: __WCHAR_WIDTH__=32
  define: __WINT_WIDTH__=32
  define: __PTRDIFF_WIDTH__=64
  define: __SIZE_WIDTH__=64
  define: __INTMAX_MAX__=0x7fffffffffffffffL
  define: __INTMAX_C(c)=c ## L
  define: __UINTMAX_MAX__=0xffffffffffffffffUL
  define: __UINTMAX_C(c)=c ## UL
  define: __INTMAX_WIDTH__=64
  define: __SIG_ATOMIC_MAX__=0x7fffffff
  define: __SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)
  define: __SIG_ATOMIC_WIDTH__=32
  define: __INT8_MAX__=0x7f
  define: __INT16_MAX__=0x7fff
  define: __INT32_MAX__=0x7fffffff
  define: __INT64_MAX__=0x7fffffffffffffffL
  define: __UINT8_MAX__=0xff
  define: __UINT16_MAX__=0xffff
  define: __UINT32_MAX__=0xffffffffU
  define: __UINT64_MAX__=0xffffffffffffffffUL
  define: __INT_LEAST8_MAX__=0x7f
  define: __INT8_C(c)=c
  define: __INT_LEAST8_WIDTH__=8
  define: __INT_LEAST16_MAX__=0x7fff
  define: __INT16_C(c)=c
  define: __INT_LEAST16_WIDTH__=16
  define: __INT_LEAST32_MAX__=0x7fffffff
  define: __INT32_C(c)=c
  define: __INT_LEAST32_WIDTH__=32
  define: __INT_LEAST64_MAX__=0x7fffffffffffffffL
  define: __INT64_C(c)=c ## L
  define: __INT_LEAST64_WIDTH__=64
  define: __UINT_LEAST8_MAX__=0xff
  define: __UINT8_C(c)=c
  define: __UINT_LEAST16_MAX__=0xffff
  define: __UINT16_C(c)=c
  define: __UINT_LEAST32_MAX__=0xffffffffU
  define: __UINT32_C(c)=c ## U
  define: __UINT_LEAST64_MAX__=0xffffffffffffffffUL
  define: __UINT64_C(c)=c ## UL
  define: __INT_FAST8_MAX__=0x7f
  define: __INT_FAST8_WIDTH__=8
  define: __INT_FAST16_MAX__=0x7fffffffffffffffL
  define: __INT_FAST16_WIDTH__=64
  define: __INT_FAST32_MAX__=0x7fffffffffffffffL
  define: __INT_FAST32_WIDTH__=64
  define: __INT_FAST64_MAX__=0x7fffffffffffffffL
  define: __INT_FAST64_WIDTH__=64
  define: __UINT_FAST8_MAX__=0xff
  define: __UINT_FAST16_MAX__=0xffffffffffffffffUL
  define: __UINT_FAST32_MAX__=0xffffffffffffffffUL
  define: __UINT_FAST64_MAX__=0xffffffffffffffffUL
  define: __INTPTR_MAX__=0x7fffffffffffffffL
  define: __INTPTR_WIDTH__=64
  define: __UINTPTR_MAX__=0xffffffffffffffffUL
  define: __GCC_IEC_559=2
  define: __GCC_IEC_559_COMPLEX=2
  define: __FLT_EVAL_METHOD__=0
  define: __FLT_EVAL_METHOD_TS_18661_3__=0
  define: __DEC_EVAL_METHOD__=2
  define: __FLT_RADIX__=2
  define: __FLT_MANT_DIG__=24
  define: __FLT_DIG__=6
  define: __FLT_MIN_EXP__=(-125)
  define: __FLT_MIN_10_EXP__=(-37)
  define: __FLT_MAX_EXP__=128
  define: __FLT_MAX_10_EXP__=38
  define: __FLT_DECIMAL_DIG__=9
  define: __FLT_MAX__=3.40282346638528859811704183484516925e+38F
  define: __FLT_MIN__=1.17549435082228750796873653722224568e-38F
  define: __FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
  define: __FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F
  define: __FLT_HAS_DENORM__=1
  define: __FLT_HAS_INFINITY__=1
  define: __FLT_HAS_QUIET_NAN__=1
  define: __DBL_MANT_DIG__=53
  define: __DBL_DIG__=15
  define: __DBL_MIN_EXP__=(-1021)
  define: __DBL_MIN_10_EXP__=(-307)
  define: __DBL_MAX_EXP__=1024
  define: __DBL_MAX_10_EXP__=308
  define: __DBL_DECIMAL_DIG__=17
  define: __DBL_MAX__=double(1.79769313486231570814527423731704357e+308L)
  define: __DBL_MIN__=double(2.22507385850720138309023271733240406e-308L)
  define: __DBL_EPSILON__=double(2.22044604925031308084726333618164062e-16L)
  define: __DBL_DENORM_MIN__=double(4.94065645841246544176568792868221372e-324L)
  define: __DBL_HAS_DENORM__=1
  define: __DBL_HAS_INFINITY__=1
  define: __DBL_HAS_QUIET_NAN__=1
  define: __LDBL_MANT_DIG__=64
  define: __LDBL_DIG__=18
  define: __LDBL_MIN_EXP__=(-16381)
  define: __LDBL_MIN_10_EXP__=(-4931)
  define: __LDBL_MAX_EXP__=16384
  define: __LDBL_MAX_10_EXP__=4932
  define: __DECIMAL_DIG__=21
  define: __LDBL_DECIMAL_DIG__=21
  define: __LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
  define: __LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
  define: __LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
  define: __LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
  define: __LDBL_HAS_DENORM__=1
  define: __LDBL_HAS_INFINITY__=1
  define: __LDBL_HAS_QUIET_NAN__=1
  define: __FLT32_MANT_DIG__=24
  define: __FLT32_DIG__=6
  define: __FLT32_MIN_EXP__=(-125)
  define: __FLT32_MIN_10_EXP__=(-37)
  define: __FLT32_MAX_EXP__=128
  define: __FLT32_MAX_10_EXP__=38
  define: __FLT32_DECIMAL_DIG__=9
  define: __FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
  define: __FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
  define: __FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
  define: __FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
  define: __FLT32_HAS_DENORM__=1
  define: __FLT32_HAS_INFINITY__=1
  define: __FLT32_HAS_QUIET_NAN__=1
  define: __FLT64_MANT_DIG__=53
  define: __FLT64_DIG__=15
  define: __FLT64_MIN_EXP__=(-1021)
  define: __FLT64_MIN_10_EXP__=(-307)
  define: __FLT64_MAX_EXP__=1024
  define: __FLT64_MAX_10_EXP__=308
  define: __FLT64_DECIMAL_DIG__=17
  define: __FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
  define: __FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
  define: __FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
  define: __FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
  define: __FLT64_HAS_DENORM__=1
  define: __FLT64_HAS_INFINITY__=1
  define: __FLT64_HAS_QUIET_NAN__=1
  define: __FLT128_MANT_DIG__=113
  define: __FLT128_DIG__=33
  define: __FLT128_MIN_EXP__=(-16381)
  define: __FLT128_MIN_10_EXP__=(-4931)
  define: __FLT128_MAX_EXP__=16384
  define: __FLT128_MAX_10_EXP__=4932
  define: __FLT128_DECIMAL_DIG__=36
  define: __FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
  define: __FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
  define: __FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
  define: __FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
  define: __FLT128_HAS_DENORM__=1
  define: __FLT128_HAS_INFINITY__=1
  define: __FLT128_HAS_QUIET_NAN__=1
  define: __FLT32X_MANT_DIG__=53
  define: __FLT32X_DIG__=15
  define: __FLT32X_MIN_EXP__=(-1021)
  define: __FLT32X_MIN_10_EXP__=(-307)
  define: __FLT32X_MAX_EXP__=1024
  define: __FLT32X_MAX_10_EXP__=308
  define: __FLT32X_DECIMAL_DIG__=17
  define: __FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
  define: __FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
  define: __FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
  define: __FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
  define: __FLT32X_HAS_DENORM__=1
  define: __FLT32X_HAS_INFINITY__=1
  define: __FLT32X_HAS_QUIET_NAN__=1
  define: __FLT64X_MANT_DIG__=64
  define: __FLT64X_DIG__=18
  define: __FLT64X_MIN_EXP__=(-16381)
  define: __FLT64X_MIN_10_EXP__=(-4931)
  define: __FLT64X_MAX_EXP__=16384
  define: __FLT64X_MAX_10_EXP__=4932
  define: __FLT64X_DECIMAL_DIG__=21
  define: __FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
  define: __FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
  define: __FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
  define: __FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
  define: __FLT64X_HAS_DENORM__=1
  define: __FLT64X_HAS_INFINITY__=1
  define: __FLT64X_HAS_QUIET_NAN__=1
  define: __DEC32_MANT_DIG__=7
  define: __DEC32_MIN_EXP__=(-94)
  define: __DEC32_MAX_EXP__=97
  define: __DEC32_MIN__=1E-95DF
  define: __DEC32_MAX__=9.999999E96DF
  define: __DEC32_EPSILON__=1E-6DF
  define: __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
  define: __DEC64_MANT_DIG__=16
  define: __DEC64_MIN_EXP__=(-382)
  define: __DEC64_MAX_EXP__=385
  define: __DEC64_MIN__=1E-383DD
  define: __DEC64_MAX__=9.999999999999999E384DD
  define: __DEC64_EPSILON__=1E-15DD
  define: __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
  define: __DEC128_MANT_DIG__=34
  define: __DEC128_MIN_EXP__=(-6142)
  define: __DEC128_MAX_EXP__=6145
  define: __DEC128_MIN__=1E-6143DL
  define: __DEC128_MAX__=9.999999999999999999999999999999999E6144DL
  define: __DEC128_EPSILON__=1E-33DL
  define: __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
  define: __REGISTER_PREFIX__=
  define: __USER_LABEL_PREFIX__=
  define: __GNUC_STDC_INLINE__=1
  define: __NO_INLINE__=1
  define: __STRICT_ANSI__=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
  define: __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1
  define: __GCC_ATOMIC_BOOL_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR16_T_LOCK_FREE=2
  define: __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
  define: __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
  define: __GCC_ATOMIC_SHORT_LOCK_FREE=2
  define: __GCC_ATOMIC_INT_LOCK_FREE=2
  define: __GCC_ATOMIC_LONG_LOCK_FREE=2
  define: __GCC_ATOMIC_LLONG_LOCK_FREE=2
  define: __GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1
  define: __GCC_ATOMIC_POINTER_LOCK_FREE=2
  define: __GCC_HAVE_DWARF2_CFI_ASM=1
  define: __PRAGMA_REDEFINE_EXTNAME=1
  define: __SSP_STRONG__=3
  define: __SIZEOF_INT128__=16
  define: __SIZEOF_WCHAR_T__=4
  define: __SIZEOF_WINT_T__=4
  define: __SIZEOF_PTRDIFF_T__=8
  define: __amd64=1
  define: __amd64__=1
  define: __x86_64=1
  define: __x86_64__=1
  define: __SIZEOF_FLOAT80__=16
  define: __SIZEOF_FLOAT128__=16
  define: __ATOMIC_HLE_ACQUIRE=65536
  define: __ATOMIC_HLE_RELEASE=131072
  define: __GCC_ASM_FLAG_OUTPUTS__=1
  define: __k8=1
  define: __k8__=1
  define: __code_model_small__=1
  define: __MMX__=1
  define: __SSE__=1
  define: __SSE2__=1
  define: __FXSR__=1
  define: __SSE_MATH__=1
  define: __SSE2_MATH__=1
  define: __SEG_FS=1
  define: __SEG_GS=1
  define: __gnu_linux__=1
  define: __linux=1
  define: __linux__=1
  define: __unix=1
  define: __unix__=1
  define: __ELF__=1
  define: __DECIMAL_BID_FORMAT__=1
  define: _GNU_SOURCE=1
  define: _STDC_PREDEF_H=1
  define: __STDC_IEC_559__=1
  define: __STDC_IEC_559_COMPLEX__=1
  define: __STDC_ISO_10646__=201706L
  define: __STDC_NO_THREADS__=1
  other: --g++
  other: --gnu_version=70500
Checking for syntax errors: file:///home/user/tests/constexprex.cpp
Queueing IntelliSense update for files in translation unit of: /home/user/tests/constexprex.cpp
idle loop: reparsing the active document
Checking for syntax errors: file:///home/user/tests/constexprex.cpp
Queueing IntelliSense update for files in translation unit of: /home/user/tests/constexprex.cpp
Error squiggle count: 1
terminating child process: 26262
Error squiggle count: 1
Update IntelliSense time (sec): 0.643

Screenshots

constexprex cpp - tests - Visual Studio Code_025

Additional context

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia riproducendo l’esempio minimo dell’issue con GCC 7.5, Eigen e la configurazione riportata dell’estensione C++ su Ubuntu. Confronta il risultato del compilatore con la diagnostica e i log del server del linguaggio; il lavoro è completato quando IntelliSense non segnala più l’erroneo errore di espressione costante “this”, mentre il codice continua a compilarsi correttamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp, vscode
Ambito
developer-experience, tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
38/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.